Re: Close enough to Friday...

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

 



On Thu, Feb 28, 2013 at 9:59 PM, Adam Richardson <simpleshot@xxxxxxxxx> wrote:
> On Thu, Feb 28, 2013 at 10:19 PM, tamouse mailing lists
> <tamouse.lists@xxxxxxxxx> wrote:
>>
>> Congratulations on ditching the Dreamweaver Templates!
>>
>> Now, as to preprocessing: how does this benchmark out? Have you
>> noticed a significant different in processing time, memory usage, disk
>> usage, etc?
>
> Well, it depends...
>
> For example, if you use code similar to the inlined function example,
> there is a difference. In that example, the inlined code runs almost
> twice as fast.
>
> <?php
> $a = 1;
> $b = 2;
> $start = microtime();
>
> for ($i = 0; $i < 10000; $i++) {
> $result = ($a > $b && $a % 2 !== 0) ? $a : (($b % 2 !== 0) ? $b : (($a
> % 2 !== 0) ? $a : null));
> }
>
> $runtime = microtime() - $start;
> echo $runtime;
>
> ?>
>
> <?php
>
> function maxodd($a, $b)
> {
>         return ($a > $b && $a % 2 !== 0) ? $a : (($b % 2 !== 0) ? $b : (($a %
> 2 !== 0) ? $a : null));
> }
>
> $a = 1;
> $b = 2;
> $start = microtime();
>
> for ($i = 0; $i < 10000; $i++) {
> $result = maxodd($a, $b);
> }
>
> $runtime = microtime() - $start;
> echo $runtime;
>
> ?>
>
> That said, there's tremendous variance across the possible range of
> function types (e.g., number of args, complexity of function, etc.),
> so there's no guarantee you'll always see a worthwhile (which is also
> subjective) improvement. I'm going to use inlining for functions that
> output html-escaped output (the function wraps htmlspecialchars to
> allow whitelisting), as they're frequent and simple, the very type of
> function that is easily inlined and provides some speed benefit.
>
> In terms of the templating, in my tests using siege comparing
> Dreamweaver Templates vs PHP includes, I've typically seen significant
> benefits when the template requires multiple includes, with the effect
> dropping off as the number of includes approaches 0. These results
> should be the same. Again, there seems to be a broad range of
> considerations (in terms of using APC, using absolute paths helped the
> include performance:
> http://www.php.net/manual/en/apc.configuration.php#ini.apc.stat)
>
> There are usually bigger ways to enhance performance (data
> persistence, etc.), but in the same way that I try to teach my little
> girls to turn off the faucet in between spitting into the sink even
> though monitoring showers can do much more to save water, when I see
> simple ways I can consistently save cycles, I try to implement them :)
>
> Adam
>
> --
> PHP General Mailing List (http://www.php.net/)
> To unsubscribe, visit: http://www.php.net/unsub.php
>

Awesome. Not unsuspected, but still awesome. I know some site schemes
that do a lot of nested templating; and from my work on rails,
rendering a site with tons of partials (the same sort of thing) can
really slow page loads down. I know Smarty caches the compiled
templates automatically, and refreshes if a given template changes
from the cached version, and this does speed things up somewhat, but
it doesn't actually do the full up staticify (if i may be so bold!)
like this.

-- 
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