サンプルコード 実行結果
memory 1:160 memory 2:128 memory 3:0個人的な予想に反してforよりforeachの方が省メモリであるという結果が出ました。
コードの書き方を何か間違えたかな…と思ったのですが原因についてはよく分かりませんでした。
listとeachを使ったループが最も省メモリであるのは予想通りです。
とても大きな配列をループさせる時はlistとeachで回すのも一つの方法かもしれませんね。
memory 1:160 memory 2:128 memory 3:0個人的な予想に反してforよりforeachの方が省メモリであるという結果が出ました。
string(18) "myIterator::rewind" string(17) "myIterator::valid" string(19) "myIterator::current" string(15) "myIterator::key" 0 => firstelement string(16) "myIterator::next" string(17) "myIterator::valid" string(19) "myIterator::current" string(15) "myIterator::key" 1 => secondelement string(16) "myIterator::next" string(17) "myIterator::valid" string(19) "myIterator::current" string(15) "myIterator::key" 2 => lastelement string(16) "myIterator::next" string(17) "myIterator::valid"この結果から分かるように、foreachは
BenchMark 1 average:0.0053820133209229 BenchMark 2 average:0.0054374217987061と、わずかばかりforの方が速いようです。
BenchMark 1 average:0.0039301872253418 BenchMark 2 average:0.003798246383667と、後者のほうが早かったりします。
var1 => value 1 var2 => value 2 var3 => value 3 MyClass::getProperty: var1 => value 1 var2 => value 2 var3 => value 3 protected => protected var private => private var使うかな。使わなそうだなぁ…。
BenchMark 1 average:0.032666206359863 BenchMark 2 average:0.032941651344299これからはパターン1で行こうと思います。
1211パターン1とパターン3、パターン2とパターン4が同じ結果になると思ったのですが、そうはなりませんでした。
BenchMark 1 average:0.01190493106842 BenchMark 2 average:0.012681221961975三項演算子は遅いという印象はありましたが
BenchMark 1 average:0.51706559658051 BenchMark 2 average:0.51087384223938この結果を見るには大差無さそうですね。
BenchMark 1 average:0.0028216361999512 BenchMark 2 average:0.0024353981018066と、後者のほうが速いです。
BenchMark 1 average:0.014285373687744 BenchMark 2 average:0.013172221183777とまあ、わずかばかり後者のほうが速かったりもします。
FLAG1 FLAG1 FLAG2 FLAG2いかがでしょうか。
BenchMark 1 average:0.010251259803772 BenchMark 2 average:0.0099292039871216サンプルコード 実行結果
BenchMark 1 average:0.10526418685913 BenchMark 2 average:0.10484325885773このような結果になりました。
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9いかがでしょうか。
BenchMark 1 average:0.10385200977325 BenchMark 2 average:0.10636031627655自分だけが見るコードでしたら少々トリッキーなこんな書き方もアリではないでしょうか。