2013-02-26 119 views
2

我注意到有幾次,在shell命令行上啓動時,一個簡單的python腳本(在循環中有一些直接的代數計算)運行速度相當快(達到因子6)與通過IDLE的shell運行相比。劇本中沒有什麼特別的。我只打印一個循環變量,以可視化地跟蹤循環中的進度。在命令行上啓動速度python腳本vs在IDLE shell中啓動

當然,這個打印語句不能成爲IDLE中速度丟失的原因,還是可以呢?

有人可以解釋我爲什麼這是嗎?

+0

嗨,你是指IDLE中的交互式解釋器嗎?或者一旦保存從IDLE運行它? – 2013-02-26 09:51:03

+0

我的意思是一旦保存就從IDLE運行它。循環實際上只是一個大的數值計算,儘管包含一些類方法調用。 – 2013-02-26 10:27:36

+0

聽起來很奇怪。我現在沒有閒着去測試只有無頭的Ubuntu盒子。你可以在這兩個代碼中看看結果會給出什麼結果會導致print timeit.Timer('for i in range(0,10000):print i')。timeit(number = 100)'將其限制爲只有'print',問題可能是在GUI中打印文本比操作系統要慢 – 2013-02-26 10:44:42

回答

1

Tkinter文本小部件很慢,而IDLE使用它來打印文本到屏幕。

請參閱this的問題。

+0

那麼,不應該這是Tkinter開發人員的主要擔心?我的意思是,如果只是打印一個整數會使代碼執行速度降低兩個數量級,那麼您的工具的開發會有多糟糕? – 2013-02-26 13:33:52

+1

如果有像Tkinter這樣的開發者...... – danodonovan 2013-02-26 16:28:22