Re: smart_str performance

From: Date: Wed, 21 May 2003 17:05:53 +0000
Subject: Re: smart_str performance
References: 1  Groups: php.internals 
Request: Send a blank email to internals+get-1863@lists.php.net to get a copy of this message
This seems like a trivial bug fix to me. Having implode() get significantly slower from 4.2 to 4.3 doesn't make any sense to me. -Rasmus On 21 May 2003, Sterling Hughes wrote: > Switched it to avoid a copy on convert_to_string(). Performance in PHP5 > now beats the previous version. > > -Sterling > > On Wed, 2003-05-21 at 12:36, Brian J. France wrote: > > This was a email I sent to Rasmus and another co-worker a while ago and forgot > > to post the question to the list. I just saw a commit converting zlib to > > smart_str and figured I would send it now. > > > > Comments? > > > > Brian > > > > ---- > > I think I found what you were looking for yesterday. implode has change > > between 4.3 and 4.2. 4.2 does the double pass while 4.3 has changed to use a > > new smart_str struct with smart_str_appendl function (a struct and function > > calls around what I was doing in my extension). I decided to run some > > quick tests and here is what I have found: > > > > for ( $i=0; $i < $count; $i++ ) { > > $arr[] = rand_string_function(); // 12 characters > > } > > > > $start = gettimeofday(); > > $str = implode( "", $arr ); > > $end = gettimeofday(); > > printf( "%8.8d: %8.8f\n", $count, time_diff( $start, $end ) ); > > > > give this output: > > > > 4.3: > > 1: 0.00005100 > > 2: 0.00002800 > > 5: 0.00003700 > > 10: 0.00006000 > > 100: 0.00045600 > > 1000: 0.00478600 > > 10000: 0.06507500 > > 100000: 1.71620700 > > > > 4.2: > > 1: 0.00004700 > > 2: 0.00002500 > > 5: 0.00002800 > > 10: 0.00004000 > > 100: 0.00022400 > > 1000: 0.00240700 > > 10000: 0.03677200 > > 100000: 0.37068200 > > > > While below 10 items I am sure it is hard to tell the difference, but it is > > slower in all cases. Any clue why one item is slower than two or even five? > > > > Brian >

« previous php.internals (#1863) next »