2014-03-25 42 views
0

我剛剛學習Python,我試過這個基於Learn Python The Hard Way的簡單循環。根據我的基本瞭解,這應該一直保持打印「你好」,一個字母在同一個位置。這似乎是這種情況,但打印不流暢,它不會在每個字符上花費相同的時間;有些速度非常快,然後它似乎在一個上停留了一兩秒鐘。爲什麼這個簡單的循環產生一個「緊張的」打印?

你能解釋一下爲什麼嗎?

while True: 
    for i in ["H","e","l","l","o"]: 
     print "%s\r" % i, 
+0

您的系統還必須執行其他操作,並且可能會中斷打印頻率。然後有緩衝區和緩衝區刷新和任務開關等 –

+0

其實我認爲這只是'幻想',因爲你必須'我的,它基本上保持更多的屏幕上 – skamsie

+0

嘗試簡單地刪除你的'while true',它應該要快得多。 –

回答

2

您正在使用它做的工作非常少一個無限循環,而且大部分是印刷。這種應用程序的瓶頸在於您的輸出能夠在您的運行環境(您的控制檯)中集成多快。

涉及各種緩衝區,系統還可以安排其他進程,因此暫停您的應用幾個週期。

+0

謝謝。所以這是我的系統每隔一段時間暫停應用程序。如果它正在執行一些硬計算,那還會發生嗎?另外,我可以通過給應用程序更高的優先級來消除這種停頓嗎? – margaritam

+1

這發生在所有進程中,但隨着I/O的快速變化,可見度會更高。不,你不能消除暫停,除非你重新爲實時操作系統編程;多任務操作系統總是會引入一些延遲。 –

相關問題