[Sascha Schumann <[EMAIL PROTECTED]>]
> Hi,
>
> while looking at the strace output of readfile() in a CGI
> context, I noticed that the CGI code (a) uses stdio and (b)
> that it only outputs chunks with a maximum size of 16KB.
>
> The effect is clearly visible (reproducible, both tests were
> run with a warmed-up cache):
>
> $ time ./php-mmap-fwrite ./script >/dev/null
> 2.75user 0.47system 0:03.22elapsed 99%CPU (0avgtext+0avgdata 0maxresident)k
> 0inputs+0outputs (244391major+65minor)pagefaults 0swaps
>
> $ time ./php-mmap-write ./script >/dev/null
> 0.03user 0.01system 0:00.04elapsed 100%CPU (0avgtext+0avgdata 0maxresident)k
> 0inputs+0outputs (284major+64minor)pagefaults 0swaps
>
> E.g. using write() is about 80 times faster on Linux than the
> limited fwrite() version.
>
> fwrite() was probably chosen because it is a standardized
> function and is expected to work everywhere.  So, what we
> would need to do is to add a check whether write() works on
> the system before using it.
>
> Are there any objections to such a change?

Since the change is local to the CGI SAPI, I see no problems with it.
Using fwrite in conjunction with mmap is just wasteful anyway.

 - Stig

-- 
  Stig Sæther Bakken <[EMAIL PROTECTED]>
  Fast Search & Transfer ASA, Trondheim, Norway

-- 
PHP Development Mailing List <http://www.php.net/>
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
To contact the list administrators, e-mail: [EMAIL PROTECTED]

Reply via email to