in reply to Re: swapping vars, two ways, 2 results...
in thread swapping vars, two ways, 2 results...
"perl's way" is better(?),faster, cheaper, shorter(just), and preferable in every way(opinion?).
c:\test>perl -MBenchmark=cmpthese my ($a,$b)=('a'x1000,'b'x1000); cmpthese( -10, { PERL=> sub{ ($a, $b) = ($b, $a); }, C => sub{ my $t=$a, $a=$b, $b=$t; }, XOR => sub{ $a^=$b^=$a^=$b; }, } ); ^Z Benchmark: running C, PERL, XOR, each for at least 10 CPU seconds... C: 10 wallclock secs (10.01 usr + 0.00 sys = 10.01 CPU) @ 19 +7752.07/s (n=1980487) PERL: 10 wallclock secs (10.30 usr + 0.00 sys = 10.30 CPU) @ 12 +1439.73/s (n=1250222) XOR: 10 wallclock secs (10.03 usr + -0.01 sys = 10.02 CPU) @ 33 +5113.02/s (n=3356492) Rate PERL C XOR PERL 121440/s -- -39% -64% C 197752/s 63% -- -41% XOR 335113/s 176% 69% -- c:\test>
If performance isn't a concern I use list assignment, if it is, I'd use the XOR method.
Examine what is said, not who speaks.
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re: Re: Re: swapping vars, two ways, 2 results...
by jdporter (Paladin) on Dec 19, 2002 at 03:35 UTC | |
by BrowserUk (Patriarch) on Dec 19, 2002 at 04:39 UTC | |
|
Re: Re: Re: swapping vars, two ways, 2 results...
by RMGir (Prior) on Dec 19, 2002 at 19:24 UTC | |
by BrowserUk (Patriarch) on Dec 19, 2002 at 19:41 UTC | |
|
Re: Re: Re: swapping vars, two ways, 2 results...
by Sihal (Pilgrim) on Dec 19, 2002 at 08:41 UTC |