Re: CGI output performance

From: Date: Sat, 19 May 2001 08:48:41 +0000
Subject: Re: CGI output performance
References: 1  Groups: php.dev 
Request: Send a blank email to php-dev+get-55874@lists.php.net to get a copy of this message
[Sascha Schumann <sascha@schumann.cx>] > 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 <ssb@fast.no> Fast Search & Transfer ASA, Trondheim, Norway

« previous php.dev (#55874) next »