目的

針對Python print效能測試,用實際數據進行比較。

環境

測試方法

測試結果

1
2
3
4
5
6
7
8
9
10
11
12
13
# 10萬次回圈
測試條件: 進行10.0萬次回圈,不列印任何字元,消耗時間為0.003秒
測試條件: 進行10.0萬次回圈,列印10個字元,消耗時間為0.962秒
測試條件: 進行10.0萬次回圈,列印100個字元,消耗時間為1.64秒
測試條件: 進行10.0萬次回圈,列印100個字元且換行,消耗時間為9.797秒

# 100萬次回圈
測試條件: 進行100.0萬次回圈,不列印任何字元,消耗時間為0.02秒
測試條件: 進行100.0萬次回圈,列印10個字元,消耗時間為9.753秒
測試條件: 進行100.0萬次回圈,列印100個字元,消耗時間為16.41秒
測試條件: 進行100.0萬次回圈,列印100個字元且換行,消耗時間為97.132秒


結論

print確實會消耗更多的執行時間。

在10萬次回圈下

  • 『列印100個字元且換行』消耗時間為『不列印任何字元』的9.797/0.003=3266倍
  • 『列印100個字元』消耗時間為『不列印任何字元』的1.64/0.003=546倍
  • 『列印10個字元』消耗時間為『不列印任何字元』的0.962/0.003=320倍

在100萬次回圈下

  • 『列印100個字元且換行』消耗時間為『不列印任何字元』的97.132/0.02=4856倍
  • 『列印100個字元』消耗時間為『不列印任何字元』的16.41/0.02=812倍
  • 『列印10個字元』消耗時間為『不列印任何字元』的9.753/0.02=488倍
那是否因為這效能差異而不使用print呢?如果在一般小專案用戶不多情況下,個人會選擇使用print,因為print的可讀性比較高,而且在debug時,可直接看到print的結果,這對接案節省時間是有幫助的。

若是有大量使用者的服務,某API呼叫次數每天都有數十萬數百萬,這時應該就要避免使用print了,因為節省下來的效能會非常可觀。

1
2
3
4
5
6
結論, Conclusion, con-clu-sion
數百萬, hundred million, hund-erd mi-lion
可讀性, readability, read-a-bil-ity
消耗時間, consume time, con-sume time
```