smart_str performance
| From: | Brian J. France | Date: | Wed, 21 May 2003 16:36:40 +0000 |
| Subject: | smart_str performance | ||
| Groups: | php.internals | ||
| Request: | Send a blank email to internals+get-1860@lists.php.net to get a copy of this message | ||
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