phpにおける静的方法staticと非静的方法の効率比較
今日この文章を読んだとき、http://jingyan.baidu.com/article/6b97984d7892d21ca2b0bfc2.htmlは最初の文がクラスの方法をstaticと定義できれば、できるだけstaticと定義すれば、その速度は4倍近く向上することを発見しました.実践はコードの実行効率を検証する唯一の基準であるため、退勤して家に帰る時間に乗じて、小さなテストをした:まずテストコード(間違っているところがあれば、みんなに指摘してください):テスト環境:/test#php-v PHP 5.4.24(cli)(built:Jan 19 2014 21:32:15)Copyright(c)1997-2013 The PHP Group Zend Engine v 2.4.0,Copyright(c) 1998-2013 Zend Technologies
/test # uname -a Darwin 192.168.0.101 13.1.0 Darwin Kernel Version 13.1.0: Thu Jan 16 19:40:37 PST 2014; root:xnu-2422.90.20~2/RELEASE_X86_64 x86_64
システム構成は、この文書のhttp://blog.csdn.net/lamp_water/article/details/20968155 class staticTest{public function test(){$i=0;$i++;}を参照できます.
$start = microtime(true); for($i=0;$i<10000000;$i++) { $test = new staticTest(); $test->test(); } echo (microtime(true) - $start) ."";
$start = microtime(true); for($i=0;$i<10000000;$i++) { staticTest::testStatic(); } echo microtime(true) - $start;
サイクル実行1千万回の実行結果は以下の通りである:/test#php staticTest.php 2.29938342094421 1.1871800422668第2回実行結果:2.3032295135498 1.1807670593262何回も実行した後、2.3と1.18付近にある.このように、効率の向上はそれほど怖くないが、性能の向上は確かに2倍ほど向上した.したがって、クラスのメソッドをstaticとして定義できる場合は、できるだけstaticとして定義すると、その速度は1倍近く向上します.正常なphpフレームワークでは、中のクラスと方法は非常に多く、静的な方法を作ることができれば、静的な方法を使うほうがよく、効率が高いです.
/test # uname -a Darwin 192.168.0.101 13.1.0 Darwin Kernel Version 13.1.0: Thu Jan 16 19:40:37 PST 2014; root:xnu-2422.90.20~2/RELEASE_X86_64 x86_64
システム構成は、この文書のhttp://blog.csdn.net/lamp_water/article/details/20968155 class staticTest{public function test(){$i=0;$i++;}を参照できます.
public static function testStatic() {
$i = 0;
$i++;
}
)$start = microtime(true); for($i=0;$i<10000000;$i++) { $test = new staticTest(); $test->test(); } echo (microtime(true) - $start) ."";
$start = microtime(true); for($i=0;$i<10000000;$i++) { staticTest::testStatic(); } echo microtime(true) - $start;
サイクル実行1千万回の実行結果は以下の通りである:/test#php staticTest.php 2.29938342094421 1.1871800422668第2回実行結果:2.3032295135498 1.1807670593262何回も実行した後、2.3と1.18付近にある.このように、効率の向上はそれほど怖くないが、性能の向上は確かに2倍ほど向上した.したがって、クラスのメソッドをstaticとして定義できる場合は、できるだけstaticとして定義すると、その速度は1倍近く向上します.正常なphpフレームワークでは、中のクラスと方法は非常に多く、静的な方法を作ることができれば、静的な方法を使うほうがよく、効率が高いです.