in reply to Re^7: Finding the size of a nested hash in a HoH
in thread Finding the size of a nested hash in a HoH
And result seems to show me "each" is slower than "keys", especially when hash becomes larger.perl 025-1.pl each 10000 > log sleep 10; perl 025-1.pl keys 10000 >> log sleep 10; perl 025-1.pl each 100000 >> log sleep 10; perl 025-1.pl keys 100000 >> log sleep 10; perl 025-1.pl each 1000000 >> log sleep 10; perl 025-1.pl keys 1000000 >> log sleep 10; perl 025-1.pl each 2000000 >> log sleep 10; perl 025-1.pl keys 2000000 >> log
###count=10000,each### before : size=8708096 after hash: size=11853824 after loop: size=11853824 time=0.051 ###count=10000,keys### before : size=8708096 after hash: size=11853824 after loop: size=11853824 time=0.043 ###count=100000,each### before : size=8708096 after hash: size=41213952 after loop: size=41213952 time=0.791 ###count=100000,keys### before : size=8708096 after hash: size=41213952 after loop: size=41213952 time=0.680 ###count=1000000,each### before : size=8708096 after hash: size=294969344 after loop: size=296017920 time=8.561 ###count=1000000,keys### before : size=8708096 after hash: size=294969344 after loop: size=296017920 time=7.429 ###count=2000000,each### before : size=8708096 after hash: size=581230592 after loop: size=582279168 time=309.887 ###count=2000000,keys### before : size=8708096 after hash: size=581230592 after loop: size=582279168 time=99.701
My question is
1. Why Gtop says while loop and foreach loop consume exact same memory?
2. Why foreach/keys loop faster in this example? As another person kindly pointed me, Benchmark shows while/each loop is faster.
updated
I didn't understand the output of Benchmark... Benchmark also says foreach/keys loop is faster. But question remains. Why?
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^9: Finding the size of a nested hash in a HoH
by BrowserUk (Patriarch) on Nov 11, 2011 at 20:26 UTC | |
by remiah (Hermit) on Nov 12, 2011 at 01:56 UTC | |
by BrowserUk (Patriarch) on Nov 12, 2011 at 02:46 UTC |