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>