可能每个人都听说过用于测量其运行的硬件性能的不同软件。我指的是像Windows Experience Rating, PCMark, Futuremark等等。它们测量计算机性能的不同方面:CPU和GPU速度、内存访问时间、磁盘访问时间等等。
谁能解释一下如何开发这样的程序,使它的结果是可靠的?CPU,内存和磁盘访问速度对我来说是最重要的,GPU和其他东西是不必要的。我想,这里可能有很多警告,比如多核CPU,或者具有动态频率的CPU。或者不同的读写速度在硬盘的不同扇区。或者别的什么
我希望了解不同方面的信息,不一定是我刚才提到的所有方面的信息,尽管这很好。
注:我最感兴趣的是Windows环境,如果它重要的话。
http://www.tomshardware.com/charts/对硬件性能有很好的评价。
这更像是一个编程论坛(但似乎你知道,因为你的评级)。https://superuser.com/可能更适合Windows性能问题。
至于你的问题,基准测试只是计算执行X操作所需的时间,或者在X时间内可以执行多少X操作。
对于基准测试代码,您可以在代码脚本的顶部设置一个时间戳,在底部设置另一个时间戳,并比较两者。差异(通常是毫秒)将取决于脚本的速度。优化代码将减少差异(很明显)。
硬件通常也是如此。更好的固件或潜水员会有所不同。如果您觉得硬件不足,请升级硬件。
很容易看出你是否需要更多的内存,只需要看看使用了多少,如果是75%,那么就增加。RAM速度也很重要。DDR3 1200-1600通常就足够了。
在这个时代,电脑是如此强大,如果你在过去的几年里买了一台新电脑,大多数人都不需要升级。把垃圾程序清除掉,定期运行像ccleaner这样的程序。
edit:关于如何开发CPU基准:选择一个公式或操作需要很长时间,比如计算PI到X的位置,然后记录需要多长时间。此外,您还必须考虑到您的基准测试程序可能无法利用的核心数量和其他功能。
我正在开发一个简单的CPU基准来衡量哪个风扇位置更有效:)
我的第一个尝试是使用简单的算术(计数器++)最大化CPU使用率,同时绘制当前CPU速度,温度和每秒计数器增量,但这可能太简单了。
要记住的一件事是CPU的浮点计算和其他东西有不同的部分,有些(所有?)甚至并行地做,所以你可能想在生成负载时考虑这一点。
此外,你可能应该考虑物理/逻辑内核,并做多线程的东西。
应用程序应该警告用户,如果有大量的后台CPU使用,结果可能不正常
我自己也在为我的工作角色做类似的事情。我对CPU Integer性能进行了一些测试,其中一个是梅森素数搜索。这可以同时作为CPU的负载/稳定性测试。传奇的稳定性测试软件Prime95使用梅森素数搜索。
我发现这个微软示例站点非常有帮助。我根据我的需要修改了这个梅森质数搜索,但它开箱即用:
https://code.msdn.microsoft.com/BigInteger-Multitasking-eb319df1当测试一个CPU时,你也想测试浮点运算,还没有发现任何有用的东西,但如果我这样做,我会更新这篇文章。
这里还有一个关于测试RAM的类似问题的有用评论:
对RAM性能进行基准测试- UWP和c#