命令列上的速度 python 腳本與在 IDLE shell 中啟動的速度

命令列上的速度 python 腳本與在 IDLE shell 中啟動的速度

我多次注意到,與透過 IDLE 的 shell 運行相比,在 shell 命令列上啟動簡單的 python 腳本(在循環中進行一些簡單的代數計算)運行速度要快得多(高達 6 倍)。劇本中沒有什麼奇特的事情發生。我只列印一個循環變數來直觀地追蹤循環中的進度。

當然,這個 print 語句不能成為 IDLE 速度損失的原因,或者可以嗎?

有人可以解釋一下這是為什麼嗎?

答案1

是的,列印語句確實是空閒時速度變慢的主要原因。 stdout 和 stderr 流由 IDLE 捕獲,並執行一大堆 Tk 命令來正確渲染文字。將輸出刪除到標準輸出應該會再次加快速度。

請參閱空閒函式庫.PyShell,空閒庫.OutputWindow, 和空閒庫.EditorWindow用於(某些)兔子洞範圍的模組......

我建議使用記錄記錄進度的模組;然後,您可以在 IDLE 中執行時將日誌記錄等級設為更高,以避免在這種情況下輸出,或在 stdout 以外的位置記錄日誌。

雖然我真的不會推薦它,類似下面的東西可能有效最多如果您確實希望在 IDLE 下運行時能夠以不同的方式配置行為,那麼您可能需要考慮一下。雖然你真的不應該:-)

import sys

running_under_idle = 'idlelib' in sys.modules

相關內容