Satyam wrote:
> for ($x=0;$x<1000;$x++) {
> echo ' <tr><td>X is ' , $x , '</td></tr>';
> }
This seems to be a hair faster. I extended the test to 10000 requests
(still concurrency 10) to make the test a little more reproducible:
echo str,var,str did 604.65 requests a second where <tr><td><?= $x
?></td></tr> did 599.63 requests a second. I also tried echo str . var .
str, and it came in at about 584.55 requests a second. printf("str %i
str",var) came out at 547.01 requests a second and printf("str %s
str",var) was only 452.03 requests a second.
> Can you try and time that one so we have comparable results? This one
> should be second best:
>
> for ($x=0;$x<1000;$x++) {
> echo "<tr><td>X is $x</td></tr>";
> }
Approximately 330 (?!) requests a second for that one.
> Back again to what would be 'longer', well, in your example, the whole
> header, up to the loop itself should be faster if sent out of PHP.
> Likewise, you could echo $buffer right after the loop, drop out of PHP
> and send the footer as plain HTML. This, of course, is harder to time
> since it happens only once. I admit though that I did time the
> options I listed and on the 'dropping in and out of PHP' I'm relying
> on the PHP manual ( see
> http://www.php.net/manual/en/language.basic-syntax.php, the first
> paragraph after the examples) and the source of the lexical scanner,
> which supports that, though your numbers do contradict it. Interesting.
I'm not sure that my results would count as contradictory - I'm running
APC which would likely throw performance related numbers out of whack as
compared to out-of-the-box PHP.
Because of that, I wouldn't recommend anyone take my numbers too
seriously - they're just an example taken from my server: 1.8 GHz
SMP/1G/RAID5/Linux 2.6.17.7/Apache 2.2.3/PHP 5.1.6/APC 3.0.12p2. Anyone
else's results would probably vary widely.
jon