ホームページ > バックエンド開発 > PHPチュートリアル > PHP の静的メソッドと非静的メソッドの効率の比較

PHP の静的メソッドと非静的メソッドの効率の比較

WBOY
リリース: 2016-06-23 13:58:53
オリジナル
1158 人が閲覧しました

今日この記事 http://jingyan.baidu.com/article/6b97984d7892d21ca2b0bfc2.html を読んでいたら、最初の文がこれだったことがわかりました

クラスメソッドを静的として定義できる場合は、次のように定義してみてください静的であれば、速度はほぼ 4 倍に向上します。

コード実行の効率をテストするための唯一の基準は実践であるため、仕事から帰ってから少しの時間を利用して、小さなテストを実行しました:

まず、コードをテストします (問題があれば修正してください)何か間違っています):

テスト環境:

/test # php -vPHP 5.4.24 (cli) (built: Jan 19 2014 21:32:15) Copyright (c) 1997-2013 The PHP GroupZend Engine v2.4.0, Copyright (c) 1998-2013 Zend Technologies
ログイン後にコピー

/test # uname -aDarwin 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

<?phpclass 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) ."\n";$start = microtime(true);for($i=0;$i<10000000;$i++) {    staticTest::testStatic();}echo microtime(true) - $start;
ログイン後にコピー

1000万回のループ実行結果 以下の通り:

/test # php staticTest.php

2.2938342094421

1.1871800422668
2回目の実行結果:

2.303295135498

1.1807670593262

実行後多くの場合、近くの 2.3 と 1.18 にあります。記事で言及されている効率の向上はそれほどひどいものではありませんが、パフォーマンスの向上は確かに約 2 倍になっていることがわかります。

したがって、引き続きお勧めします:

クラスメソッドを静的として定義できる場合は、それを静的として定義してみてください。その速度はほぼ 2 倍になります。

通常の PHP フレームワークには、まだ多くのクラスとメソッドが含まれていますが、静的メソッドにできる場合は、静的メソッドを使用する方が効率的です。





ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート