一個網站,5個人類年代碼(5個開發人員,大約一年),每天點擊數千次。如果我們在可能的情況下將所有「改爲」,會產生什在PHP中使用'替代'是否真的有影響
回答
查看double(「)與單個(')報價部分PHPBench(滾動至頁面末尾)。當我調用該頁面時,我看到以下結果:
Single Quotes: 257 µs
Double Quotes: 232 µs
除非25μs對您的問題域有影響,否則無關緊要。
我要試着在這裏算出數學,如果我犯了一個錯誤,有人會糾正我。假設你有10,000個使用雙引號而不是單引號的地方,每頁加載時間差異爲25μs(誰知道它是否會以這種方式實際工作,你需要基準你的實際代碼),那將是一個執行時間差0.25秒。如果你是Facebook的話,這可能很重要,取決於服務器負載。但是,我懷疑代碼庫中還有很多其他地方的資源密集程度更高,您甚至在查看引號之前都會優化它們。只要看看PhpBench頁面上強調的痛點,你就會看到你應該有不同的優先級。而且,如果您運行不同的PHP實現(如Quercus),這些數字將會大不相同 - 這可以解決一些性能瓶頸問題。
號
正如有人在PHP微優化問題,指出了幾個星期前(我認爲這個問題是一樣的「,對應「),實施優化將幾乎總是花費更多的時間比以往任何時候都將
在微觀優化嘗試上花費時間的風險是可能(還有待確定)代碼(以及任何第三方依賴項)的方面,其可以/應該被剖析,然後被重構/優化每人工時間比率提高效率。我不能推薦你閱讀Remember also the rules of Optimization Club。
認爲它不是微型優化,而是我需要在開始這個龐大的項目之前爲程序員設置的指南...... – 2009-12-24 03:01:00
這是一個公平點。 – micahwittman 2009-12-24 03:03:44
運行時的性能沒有差異。但編譯時有所不同。
考慮在PHP的報價通常使用的方法是:
單引號字符串內的變量不被解析,所以PHP引擎不必浪費時間尋找他們。因此,單引號字符串必須更有效
這假設是錯誤的,因爲PHP引擎不執行ckeck在運行時間,但在編譯的時候。
當PHP解析你的腳本時,如果它發現一個雙引號的字符串,它內部沒有變量,那麼該字符串被視爲一個常量字符串,即它的值在整個腳本的生命週期中不會改變(if裏面有變量,然後它被轉換成字符串連接)。
同樣,如果PHP找到一個單引號的字符串,它也被視爲一個常量。但在這種情況下,PHP不必分析字符串查找變量的內容。
因此,您的問題的答案取決於您是否使用PHP緩存解決方案(APC,eAcceleator等)。如果腳本的編譯沒有被緩存,那麼您可能會略有性能改進,因爲每次訪問者加載頁面時都會編譯腳本,因此編譯時間非常重要。 但是,如果您的腳本的編譯被緩存,那麼使用單引號字符串和雙引號字符串沒有什麼不同。
- 1. SQL中是否有sp_updatestats的影響?
- 2. CreateThread是否會影響VirtualAlloc的使用?
- 3. jQuery添加替代文字是否會影響SEO?
- 4. 加載不使用的.php文件是否會影響性能?
- 5. PHP是否有PHP4替代curl_multi_select
- 6. 在PHP中是否有shell_exec和proc_open的替代方案?
- 7. 使用php編寫文件時檢查是否影響到行
- 8. 是否有替代MySQL的
- 9. 內聯CSS和JavaScript是否真的影響網站SEO?
- 10. 是否有替代CGI(我真的需要一個)?
- 11. 包含未使用的頭文件是否對代碼有影響?
- 12. 在ASP.NET中是否有替代Page.ParseControl?
- 13. 在Java 9中是否有替代com.sun.jndi.dns.DnsContextFactory?
- 14. 在MySQL中改變表格是否會影響php頁面?
- 15. 交易是否影響所有查詢?
- 16. 到期日是否對MemoryCacheClient有影響?
- 17. 「set -euo pipefail」是否對eval有影響?
- 18. globalCompositeOperation是否影響到所有圖層?
- 19. 使用空格替代製表符縮進的性能影響
- 20. 在生產中使用ActionCable時,性能是否會影響?
- 21. 是否有可能在Jekyll中使用普通CSS代替SASS
- 22. PHP腳本是否使用受超時限制影響的「php」命令運行?
- 23. 處理程序與線程是否有任何真正的性能影響?
- 24. iOS中是否有AUSplitter的替代品?
- 25. iBeacons是否互相影響?
- 26. setbuf()是否會影響cout?
- 27. 是否有替代javax.mail.search?
- 28. 是否有替代SSH
- 29. 是否有替代MYSQL HAVING
- 30. 是否有替代PyMedia
看到人們試圖微觀優化PHP代碼總是很有趣的,因爲PHP作爲平臺的常規基準測試幾乎比Java和.Net慢一個數量級。如果你使用PHP,你已經無望地落後於8球。 PHP有很多優點,但性能不是其中之一。如果這種微觀優化對您的應用程序至關重要,那麼您選擇了錯誤的語言。 – Asaph 2009-12-24 03:33:46