使用Python实际任意指令浪费周期
我一直在研究一个项目,在该项目中,我需要创建一个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)。这是我们的限制。
没有想到最好的方法,只是试了一下,它的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)
您可以在下面添加time.sleep(0.2)并再试一次。因为当没有延迟时,显然是100%。 – mozcelikors
我真的不明白你的意思。具有睡眠的代码甚至可以达到100%的负载?你想要什么样的负载? – pltrdy
我不希望它完全达到100%,但至少可以像50%。 如果你打印“你好”没有睡觉,那也将达到100%。那不是我想要的。 – mozcelikors
如果我正确理解你的问题,以及建设进一步经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)
我会尽快尝试。谢谢。 – mozcelikors
这是哪个python版本? 2.7或3.x? –
嗨,我在Linux上使用Python 2.7 – mozcelikors
矩阵乘法是相当CPU密集型,也许你可以生成两个不同大小的随机矩阵,并乘以它们? –