in reply to Re: Re: Add A Number of Days to Today's Date
in thread Add A Number of Days to Today's Date

It makes it obvious what is meant and makes no significant difference to speed whatsoever:

use Benchmark; $yours = ' $days = 10; $then = localtime(time() + $days * 86400);'; $mine = ' $days = 10; $then = localtime(time() + $days * 24*60*60 );'; timethese ( 100000, { 'yours' => $yours, 'mine' => $mine } ); __END__ Benchmark: timing 100000 iterations of mine, yours... mine: 30 wallclock secs (29.95 usr + 0.00 sys = 29.95 CPU) @ 33 +38.89/s (n=100000) yours: 30 wallclock secs (29.94 usr + 0.00 sys = 29.94 CPU) @ 33 +40.01/s (n=100000)

sleep 28800 :-) cheers

tachyon

s&&rsenoyhcatreve&&&s&n.+t&"$'$`$\"$\&"&ee&&y&srve&&d&&print

Replies are listed 'Best First'.
Re: Re: Re: Re: Add A Number of Days to Today's Date
by runrig (Abbot) on Sep 29, 2001 at 00:45 UTC
    It makes a bit more difference if you factor in compile time (more tokens to parse, and no optimization of multiplying constants, don't ask me which makes more of a difference):
    use strict; use warnings; use Benchmark; my $x = 5; timethese(-5, { EXPANDED=>sub { eval '$x * 24 * 60 * 60' }, NOT_EXP =>sub { eval '$x * 86400' }, }); Benchmark: running EXPANDED, NOT_EXP, each for at least 5 CPU seconds. +.. EXPANDED: 6 wallclock secs ( 5.31 usr + 0.00 sys = 5.31 CPU) @ 56 +77.40/s (n =30147) NOT_EXP: 6 wallclock secs ( 5.26 usr + 0.00 sys = 5.26 CPU) @ 67 +49.24/s (n =35501)
    But of course I'd leave in the explicit multiplications anyway for reasons already mentioned. If I really needed to eval that, I might put something like $seconds_per_day = 24 * 60 * 60; outside of the eval, then use the variable inside.