From: Russ Cox <rsc@swtch.com>
To: Fans of the OS Plan 9 from Bell Labs <9fans@9fans.net>
Subject: Re: [9fans] etherigbe.c using _xinc?
Date: Tue, 8 Dec 2009 15:52:51 -0800 [thread overview]
Message-ID: <dd6fe68a0912081552s30851f04n109e56479bb423cb@mail.gmail.com> (raw)
In-Reply-To: <7a13edea51b085e17fc02c0e8d0b6a62@coraid.com>
it looks like you are comparing these two functions
void
loopxinc(void)
{
uint i, x;
for(i = 0; i < N; i++){
_xinc(&x);
_xdec(&x);
}
}
void
looplock(void)
{
uint i;
static Lock l;
for(i = 0; i < N; i++){
lock(&l);
unlock(&l);
}
}
but the former does two operations and the latter
only one. your claim was that _xinc is slower
than incref (== lock(), x++, unlock()). but you are
timing xinc+xdec against incref.
assuming xinc and xdec are approximately the same
cost (so i can just halve the numbers for loopxinc),
that would make the fair comparison produce:
intel core i7 2.4ghz
loop 0 nsec/call
loopxinc 10 nsec/call // was 20
looplock 11 nsec/call
intel 5000 1.6ghz
loop 0 nsec/call
loopxinc 22 nsec/call // was 44
looplock 25 nsec/call
intel atom 330 1.6ghz (exception!)
loop 2 nsec/call
loopxinc 7 nsec/call // was 14
looplock 22 nsec/call
amd k10 2.0ghz
loop 2 nsec/call
loopxinc 15 nsec/call // was 30
looplock 20 nsec/call
intel p4 xeon 3.0ghz
loop 1 nsec/call
loopxinc 38 nsec/call // was 76
looplock 42 nsec/call
which looks like a much different story.
russ
next prev parent reply other threads:[~2009-12-08 23:52 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-12-08 16:25 Venkatesh Srinivas
2009-12-08 16:36 ` erik quanstrom
2009-12-08 19:35 ` Russ Cox
2009-12-08 19:52 ` John Floren
2009-12-08 20:00 ` erik quanstrom
2009-12-08 23:52 ` Russ Cox [this message]
[not found] <<dd6fe68a0912081552s30851f04n109e56479bb423cb@mail.gmail.com>
2009-12-09 0:32 ` erik quanstrom
2009-12-09 1:05 ` Russ Cox
[not found] <<dd6fe68a0912081705q6fad8a6cl20ca648397070dae@mail.gmail.com>
2009-12-09 2:04 ` erik quanstrom
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=dd6fe68a0912081552s30851f04n109e56479bb423cb@mail.gmail.com \
--to=rsc@swtch.com \
--cc=9fans@9fans.net \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).