Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 9 Nov 2007 08:36:32 -0800
From:      "Randall Hyde" <randyhyde@earthlink.net>
To:        <freebsd-hackers@freebsd.org>
Subject:   Re: Some FreeBSD performance Issues
Message-ID:  <002f01c822ee$b04ac4b0$6302a8c0@pentiv>
References:  <000701c82253$b3a8c030$6302a8c0@pentiv> <20071108225238.GB22005@dan.emsphone.com> <4734061D.9000606@freebsd.org>

next in thread | previous in thread | raw e-mail | index | archive | help

>
> You should also carefully do an strace or similar on
> Windows and Linux as well.  You may find that you're
> doing a system call per byte on FreeBSD but not on
> those other systems.

Certainly this might be possible under Windows, as I have no idea what
happens once I link in one of the various kernel.dll modules. Under Linux,
however, I am directly issuing the INT($80) instruction, so one system call
per byte is being made.

To answer a different question in the thread, I'm pretty sure I'm making
only one FreeBSD call per byte, at least in one of the cases I posted.
You'll note that one of the test examples made a call to "bsd.read( fd,
buffer, 1 );". That's just a function I wrote that rearranges parameters and
sets up the stack, executes an INT( $80 ) instruction, cleans up the stack,
and returns to the user. In a different test example I *was* making a couple
of calls, (specifically to lseek to check to see if I'd reached EOF), but
the performance difference was minimal (i.e., the time was being spent in
the read call). I have to run off for an appt right now, but I'll try the
"dd" command later today and see what that reports.

I wonder if I'm only getting one character output per time slice, or
something like that?
Cheers,
Randy Hyde




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?002f01c822ee$b04ac4b0$6302a8c0>