我想要獲得一些準確的運行時比較PHP和Python(以及可能包含的任何其他語言)的比較。在腳本中計時並不是我的問題,但腳本中的計時並未考慮從請求運行腳本到輸出的所有時間。比較運行時間
1)它真的值得考慮這些事情嗎?
2)假設值得考慮,我該怎麼做?
我使用的是Mac,所以我就可以訪問的Linux命令,我不怕編譯/創建一個命令來幫助我,我只是不知道怎麼寫這樣的命令。
我想要獲得一些準確的運行時比較PHP和Python(以及可能包含的任何其他語言)的比較。在腳本中計時並不是我的問題,但腳本中的計時並未考慮從請求運行腳本到輸出的所有時間。比較運行時間
1)它真的值得考慮這些事情嗎?
2)假設值得考慮,我該怎麼做?
我使用的是Mac,所以我就可以訪問的Linux命令,我不怕編譯/創建一個命令來幫助我,我只是不知道怎麼寫這樣的命令。
如果你的想法是比較語言,我會說他們之外的任何東西都不相關用於比較目的。
儘管如此,您可以使用time命令來測量所有內容,並且可以將它與腳本中的時間進行比較。
像這樣:
$ time script.php
HI!
real 0m3.218s
user 0m0.080s
sys 0m0.064s
它會給你的時鐘時間,用戶時間(PHP解釋器)和SYS時間(OS時間)
如果你正在考慮網上,那麼它得到了很多困難因爲如果你使用的是WSGI v/s mod_php,那麼你會混淆網絡服務器開銷,並且這並不總是很容易比較。然後,您必須將探針連接到鏈的可編程部分
如果您正在優化代碼,則需要考慮速度。您通常應該知道爲什麼要優化代碼(例如:現有代碼庫中的特定任務耗時過長,而不是「我聽說PHP比Python慢」)。如果你沒有實際計劃切換語言,那麼值得考慮的是而不是。僅僅因爲一個小模塊稍快一點,並不意味着用另一種語言重寫你的應用是個好主意。除了速度之外,還有其他許多因素可供選擇。
你當然是基準。多次運行這兩個代碼庫並比較時間。如果兩個腳本都可以從shell執行,或者使用各種語言的相應基準測試功能,則可以使用time命令;自然,後一種情況在很大程度上取決於實際的語言。
好了,你可以使用「時間」命令的幫助:
[email protected]:~$ time echo "hello world"
hello world
real 0m0.000s
user 0m0.000s
sys 0m0.000s
[email protected]:~$
,這將得到解決時序環境之外。
至於你是否需要真正計算額外的工作......完全取決於你在做什麼。我認爲這是某種類型的Web應用程序,因此它取決於您使用的框架實際上是如何工作的......是否緩存某種編譯(或解析)的腳本版本?如果是這樣,那麼啓動時間將是完全不相關的(因爲第一次啓動將是啓動時間存在的唯一時間)。
此外,請確保在循環中運行測試,以便您可以優先考慮第一次運行(並且如果需要,請在報告的第一次運行時包括費用)。我已經在Java中進行了一些測試,並且由於JIT執行其工作(並且在PHP,Python和任何其他語言中可能存在相同的命中),第一次運行總是最慢。