Re: Print or Echo takes lots of time

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Tue, 26 Sep 2006 21:45:58 +1000, David Tulloh wrote:

> Google Kreme wrote:
>> On 25 Sep 2006, at 06:11 , Sancar Saran wrote:
>> ...
>> 
>> If this is generating hundred of K of HTML, use ' instead of "
>> 
>> (yes, it's faster).
>> 
> 
> I've seen this stated several times and at first glance it seems to make
> sense.  The double quoted version has all the \n and related characters
> that need to be handled.
> 
> Except that php is a C program and uses the printf family of functions.
>  This means that all the single quoted strings actually have to be
> converted to escaped versions of double quoted strings, so internally
> '\n' becomes "\\n".
> 
> You can see this in some benchmarks, I ran the following script and a
> single quoted version from the command line.  I ran each 10 times,
> interleaved to try to balance changes in the system load.
> 
> <?php
> $str="";
> for($i=0; $i<10000000; $i++)
>         $str.="foo";
> ?>
> 
> I found that the double quoted version averaged 5.5516 seconds against
> the single quoted script of 5.5627.  Which really goes to show that
> while the double quoted version is faster the difference is almost
> completely irrelevent.

While we're at it (running benchmarks three times, varying amount of loops):

Benchmarking with 100K loops
Case 1 : 'Adding a 10-character single quoted string to a var'
Time   : 0.23s - 0.24s 
Case 2 : 'Adding a 10-character double quoted string to a var'
Time   : 0.23s - 0.24s 
Performance : Anywhere between Decreased 1.1% and Increased 26.7%

This seems really funny to me, cause I was under the impression a single
quoted string was faster... I remember benchmarking that before.

----------------------------------------

Benchmarking with 10K loops
Case 1 : 'Adding a 100-character single quoted string to a var'
Time   : 0.03s - 0.08s
Case 2 : 'Adding a 100-character double quoted string to a var'
Time   : 0.03s 
Performance : Anywhere between Increased 0.7% and Increased 66.9%

Still funny... and numbers get higher, too.

----------------------------------------

Benchmarking with 1M loops
Case 1 : 'Setting a var with a 100-character single quoted string'
Time   : 2.29s - 2.63s 
Case 2 : 'Setting a var with a 100-character double quoted string'
Time   : 2.53 - 2.78s 
Performance : Anywhere between Decreased 3.1% and Decreased 16.3%

Now this is probably what I saw previously and what made me decide using
single quotes where possible.

----------------------------------------

Benchmarking with 1M loops
Case 1 : 'Setting a var with a 100-character single quoted string incl. a variable (concat)'
Time   : 3.59s - 4.07s
Case 2 : 'Setting a var with a 100-character double quoted string incl. a variable'
Time   : 4.14s - 4.40s
Performance : Anywhere between Decreased 8.2% - Decreased 19.2%

Well, try not to use variables in a string, but concatenate it together.

----------------------------------------

Benchmarking with 1M loops
Case 1 : 'Setting a var with a 100-character double quoted string incl. a variable (concat)'
Time   : 3.58s - 3.79s
Case 2 : 'Setting a var with a 100-character double quoted string incl. a variable'
Time   : 4.12s - 5.24s
Performance : Anywhere between Decreased 14.9% - Decreased 38.4%

Same with using double quoted strings only...

----------------------------------------

Hey! It's coffee break already!

Ivo

-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php


[Index of Archives]     [PHP Home]     [Apache Users]     [PHP on Windows]     [Kernel Newbies]     [PHP Install]     [PHP Classes]     [Pear]     [Postgresql]     [Postgresql PHP]     [PHP on Windows]     [PHP Database Programming]     [PHP SOAP]

  Powered by Linux