Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 05 Jun 2008 18:23:39 -0500
From:      Kirk Strauser <kirk@strauser.com>
To:        Kris Kennaway <kris@FreeBSD.org>
Cc:        freebsd-questions@freebsd.org
Subject:   Re: Poor read() performance, and I can't profile it
Message-ID:  <4848757B.30408@strauser.com>
In-Reply-To: <484867E3.3070705@FreeBSD.org>
References:  <200806051508.29424.kirk@strauser.com>	<4848523E.2010604@FreeBSD.org> <200806051617.54400.kirk@strauser.com> <484867E3.3070705@FreeBSD.org>

next in thread | previous in thread | raw e-mail | index | archive | help
Kris Kennaway wrote:

> No, if it's reading in 16 byte units it will explain the terrible 
> performance.

No, it's actually doing 4096-byte reads.  That was just an example of 
what I meant.  Since I wrote that, though, I wrote a program to do 
1,000,000 seeks to position 0, and it ran immeasurably fast.  I'm 
guessing that lseek() is optimized to not do anything if you ask it to 
move to the position you're already at.

Any other thoughts?  There definitely aren't any setbuf() calls, and no 
matter what it still takes 100 times more kernel overhead on Linux than 
FreeBSD.  Speaking of which, I think my next experiment will be to try 
the Linux binaries on FreeBSD and see if it behaves similarly.
-- 
Kirk Strauser



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?4848757B.30408>