用简单的Python脚本测试计算机处理速度
我想制作一个简单的脚本来测试计算机执行它的时间。 我已经用PyQt构建它,并使用QTimer做了一个有趣的循环。现在我需要“忙碌”部分。我可以使用什么样的命令来使计算机工作一点,以便我可以节省时间并与其他计算机进行比较?用简单的Python脚本测试计算机处理速度
这里是我的代码,这样就可以更好地理解:
self.Tempo = QtCore.QTimer(None)
self.Cron = QtCore.QTime(0,0,0,0)
def begin():
self.Cron.start()
self.Tempo.singleShot(999, update)
def update():
if self.lcdNumber.value() == 10:
finish()
else:
self.lcdNumber.display(self.lcdNumber.value()+1)
#Here I want to make some processing stuff
self.Tempo.singleShot(999, update)
def finish():
print("end")
took = self.Cron.elapsed()/1000
print("took: {0} seconds" .format(str(took)))
self.lcdNumber_2.display(took)
你可以做任何一个循环中的复杂计算问题:
- 计算一些大数的因子(易于实现)
- 计算链SHA1哈希值100万次(很容易实现)
- 反转大矩阵(不那么容易实现)
- ...
- 等
其中的一些使用问题CPU(阶乘,SHA1),其他一些 - CPU和内存(矩阵反转)。所以首先你需要确定你想要基准测试哪部分电脑。
谢谢@werewindle。我对推动内存的功能特别感兴趣,但也可以使用CPU。你能给我举一些例子或者一些链接,我可以更多地了解这种特定的计算方法吗? –
您可以使用numpy生成巨大的随机矩形矩阵(如10 000x10 000),然后计算逆矩阵。这将有效地强调CPU和内存总线。 – werewindle
我决定连续创建一组10个测试。其中一人读取一个巨大文件的所有单词并用hashlib编码,另一个迭代和计算大范围的整数。还有一个与你的建议,使用numpy创建随机矩阵,计算它们,乘以它们并使用所有我可以的功能。它工作得很好,个人电脑花了几秒钟的时间。我仍然在考虑其他测试来完成该设置,但是您的建议非常好,谢谢。 (经过很多测试,我的电脑比一个slu slower慢,所以我猜它确实达到了目标)。 –
通常你可以实现与一个循环,做一些简单的工作,这样的事情:
lst = []
for i in range(1000000):
lst.append('x')
谢谢你的回答。我期待一些更粗糙的东西。也许更多,然后只是一个测试,你知道。 –
除了将一些元素附加到列表中,您可以添加字符串。我猜,字符串串联越大,字符串越大,这应该会测试你的内存性能。
test = "a test string"
for i in range(your_value): # it takes forever, so choose this value wisely!
if len(test) < 200000000: # somewhere above this limit I get errors
test += test
else:
test = test[0:len(test)/2] # if the string gets too long just cut it.
请记住,无论您选择哪种操作,用于运行基准测试的Python版本都可能是您获得的计时的重要因素。 – NPE
我的意图是用cx_Freeze冻结它,然后在Windows中运行它。如果我总是使用相同的冷冻包装,那么时机应该继续,我说得对吗? –
如果运行基准测试所需的一切都在冻结包内,那么是的。 – NPE