Re: Benchmarking 4.3.2 vs 4.1.2
| From: | Rasmus Lerdorf | Date: | Wed, 04 Jun 2003 17:33:08 +0000 |
| Subject: | Re: Benchmarking 4.3.2 vs 4.1.2 | ||
| References: | 1 | Groups: | php.internals |
| Request: | Send a blank email to internals+get-2169@lists.php.net to get a copy of this message | ||
Oh, this is on OSX? I guess realpath() does an open() on every component
of a path on OSX? That's nuts!
-Rasmus
On Wed, 4 Jun 2003, Jeff Moore wrote:
>
> On Wednesday, June 4, 2003, at 12:21 PM, Rasmus Lerdorf wrote:
>
> > Uh, the number of open() calls really shouldn't change. Are you sure
> > you
> > are comparing the same code?
>
> Yes. I am sure.
>
> > And how are you testing?
>
> I attach fs_usage to the running httpd process and hit the script a
> single time.
>
>
> http://developer.apple.com/techpubs/macosx/Essentials/Performance/
> PerformanceTools/fs_usage_Fi_alysis_Tool.html
>
> Here is the full trace for accessing a zero length file called
> control.php:
> (notice how each directory gets opened three times. in 4.1.2 each
> directory gets opened twice.)
>
> read F=3 B=0x1c5
> stat
> /Library/WebServer/Documents/rot/bench/control.php
> open [ 2]
> /Library/WebServer/Documents/rot/.htaccess
> open [ 2]
> /Library/WebServer/Documents/rot/bench/.htaccess
> stat
> stat .
> chdir /Library/WebServer/Documents/rot/bench
> open F=4 .
> chdir /Library/WebServer/Documents/rot/bench
> lstat control.php
> stat
> lstat .
> open F=5 ..
> fstat F=5
> fstatfs F=5
> fstat F=5
> getdirentries F=5 B=0x68
> lseek F=5 O=0x00000000
> close F=5
> lstat ..
> open F=5 ../..
> fstat F=5
> fstatfs F=5
> fstat F=5
> getdirentries F=5 B=0x208
> lseek F=5 O=0x00000000
> close F=5
> lstat ../..
> open F=5 ../../..
> fstat F=5
> fstatfs F=5
> fstat F=5
> getdirentries F=5 B=0x58
> lseek F=5 O=0x00000000
> close F=5
> lstat ../../..
> open F=5 ../../../..
> fstat F=5
> fstatfs F=5
> fstat F=5
> getdirentries F=5 B=0x2ac
> lseek F=5 O=0x00000000
> close F=5
> lstat ../../../..
> open F=5 ../../../../..
> fstat F=5
> fstatfs F=5
> fstat F=5
> getdirentries F=5 B=0x218
> lseek F=5 O=0x00000000
> close F=5
> lstat ../../../../..
> fchdir F=4
> close F=4
> stat
> stat .
> stat
> lstat .
> open F=4 ..
> fstat F=4
> fstatfs F=4
> fstat F=4
> getdirentries F=4 B=0x68
> lseek F=4 O=0x00000000
> close F=4
> lstat ..
> open F=4 ../..
> fstat F=4
> fstatfs F=4
> fstat F=4
> getdirentries F=4 B=0x208
> lseek F=4 O=0x00000000
> close F=4
> lstat ../..
> open F=4 ../../..
> fstat F=4
> fstatfs F=4
> fstat F=4
> getdirentries F=4 B=0x58
> lseek F=4 O=0x00000000
> close F=4
> lstat ../../..
> open F=4 ../../../..
> fstat F=4
> fstatfs F=4
> fstat F=4
> getdirentries F=4 B=0x2ac
> lseek F=4 O=0x00000000
> close F=4
> lstat ../../../..
> open F=4 ../../../../..
> fstat F=4
> fstatfs F=4
> fstat F=4
> getdirentries F=4 B=0x218
> lseek F=4 O=0x00000000
> close F=4
> lstat ../../../../..
> open F=4 .
> chdir /Library/WebServer/Documents/rot/bench
> lstat control.php
> stat
> lstat .
> open F=5 ..
> fstat F=5
> fstatfs F=5
> fstat F=5
> getdirentries F=5 B=0x68
> lseek F=5 O=0x00000000
> close F=5
> lstat ..
> open F=5 ../..
> fstat F=5
> fstatfs F=5
> fstat F=5
> getdirentries F=5 B=0x208
> lseek F=5 O=0x00000000
> close F=5
> lstat ../..
> open F=5 ../../..
> fstat F=5
> fstatfs F=5
> fstat F=5
> getdirentries F=5 B=0x58
> lseek F=5 O=0x00000000
> close F=5
> lstat ../../..
> open F=5 ../../../..
> fstat F=5
> fstatfs F=5
> fstat F=5
> getdirentries F=5 B=0x2ac
> lseek F=5 O=0x00000000
> close F=5
> lstat ../../../..
> open F=5 ../../../../..
> fstat F=5
> fstatfs F=5
> fstat F=5
> getdirentries F=5 B=0x218
> lseek F=5 O=0x00000000
> close F=5
> lstat ../../../../..
> fchdir F=4
> close F=4
> open F=4
> /Library/WebServer/Documents/rot/bench/control.php
> fstat F=4
> fstat F=4
> lseek F=4 O=0x00000000
> lseek F=4 O=0x00000000
> fstat F=4
> read F=4 B=0x0
> close F=4
> chdir
> lstat /usr/share/zoneinfo/GMT
> open F=4 /usr/share/zoneinfo/GMT
> fstat F=4
> read F=4 B=0x38
> close F=4
> write F=3 B=0xee
> lstat private/etc/localtime
> open F=4 /usr/share/zoneinfo/America/Detroit
> fstat F=4
> read F=4 B=0x32b
> close F=4
> write F=17 B=0x9a
> read F=3 B=0x0
> close F=3
>