php中靜態方法static和非靜態方法效率對照

來源:互聯網
上載者:User
php中靜態方法static和非靜態方法效率對比

今天在看這篇文章的時候http://jingyan.baidu.com/article/6b97984d7892d21ca2b0bfc2.html發現第一句是這個

如果能將類的方法定義成static,就盡量定義成static,它的速度會提升將近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

test();}echo (microtime(true) - $start) ."\n";$start = microtime(true);for($i=0;$i<10000000;$i++) {    staticTest::testStatic();}echo microtime(true) - $start;

迴圈執行一千萬次執行結果如下:

/test # php staticTest.php

2.2938342094421

1.1871800422668
第二次執行結果:

2.303295135498

1.1807670593262

執行很多次以後,都在2.3和1.18附近。可見,雖然沒有文章中說的效率提升那麼恐怖,效能的提升方面確實提升了一倍左右。

因此還是建議:

如果能將類的方法定義成static,就盡量定義成static,它的速度會提升將近1倍。

對於一個正常的php架構,裡面的類和方法還是非常多的,如果我們能夠做成靜態方法,還是使用靜態方法比較好,效率比較高。





  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.