2017-02-20 80 views
-1

我一直在研究一個項目,在該項目中,我需要創建一個Python應用程序,在此階段浪費指令&週期。通常當「週期性浪費」意味着等待或睡眠;但我想用不同的方式來做。即使外部程序循環的迭代週期非常高,也應該有一些浪費週期的僞指令。使用Python實際任意指令浪費週期

爲例(做典型方式):

while(True): 
    #..do simple thing.. 
    time.sleep(0.000001) 

我想要做什麼:

while(True): 
    #..do complex instructions.. 
    time.sleep(0.2) 

隨着第一個「典型」的例子我能實現定製CPU負載例如通過簡單地調整睡眠時間來達到25%或100%。我希望能夠對第二個代碼執行相同的操作,其中時間段是一個相當高的值並且是不變的,但指令是複雜且動態的。

請記住,我必須將其作爲Python應用程序來執行,而不是從shell運行的bash腳本。

有沒有辦法做到這一點?任何幫助將非常感激。

在此先感謝。

備註:如果有錯誤標籤,我表示歉意。

編輯:使用Python 2.7

編輯:該應用程序需要,應該有一個週期性睡如time.sleep(2),time.sleep(0.2)。這是我們的限制。

+0

這是哪個python版本? 2.7或3.x? –

+0

嗨,我在Linux上使用Python 2.7 – mozcelikors

+1

矩陣乘法是相當CPU密集型,也許你可以生成兩個不同大小的隨機矩陣,並乘以它們? –

回答

1

沒有想到最好的方法,只是試了一下,它的100%CPU在我的筆記本電腦i5上。 我去隨機矩陣生成和產品:

def cpu_load(): 
    import numpy as np 
    while True: 
    a = np.random.random([1000, 1000]) 
    b = np.random.random([1000, 1000]) 
    c = np.mean(a*b) 
+0

您可以在下面添加time.sleep(0.2)並再試一次。因爲當沒有延遲時,顯然是100%。 – mozcelikors

+0

我真的不明白你的意思。具有睡眠的代碼甚至可以達到100%的負載?你想要什麼樣的負載? – pltrdy

+0

我不希望它完全達到100%,但至少可以像50%。 如果你打印「你好」沒有睡覺,那也將達到100%。那不是我想要的。 – mozcelikors

0

如果我正確理解你的問題,以及建設進一步經pltrdy的代碼,我想你想是這樣的:

def cpu_load(treshold): 
    import numpy as np 
    import time 
    start = time.time() 
    while time.time() - start < treshold: 
     a = np.random.random([1000, 1000]) 
     b = np.random.random([1000, 1000]) 
     c = np.mean(a*b) 
+0

我會盡快嘗試。謝謝。 – mozcelikors

-1

如果您在Linux系統上,你可以這樣做。

import os 
os.nice(20) 

這會增加過程的好處。因此減少CPU消耗。

Here是文檔。