我有一个 Java 控制台应用程序,它对大量数据(每次约 700 MB)执行 Reed-Solomon 错误校正,只是为了测试性能。该应用程序是多线程的,我可以看到它在运行时所有核心的占用率达到 100%。
在我的笔记本电脑(Intel(R) Core(TM) i7-2670QM CPU @ 2.20GHz,8 个虚拟核心)上,我可以处理~37.84 MB/秒。此 CPU 基准测试比较让我认为我可以在 Amazon EC2 G2 实例(Intel(R) Xeon(R) CPU E5-2670 0 @ 2.60GHz,8 个虚拟核心)上获得明显更好的性能,其得分提高了 2.5 倍。
然而,在给定的 Amazon 实例上运行该应用程序后,它的吞吐量仅略有提高42.07 MB/秒。
我原本以为,架构的改进、更好的时钟、三年的技术差异以及它是服务器 CPU 与笔记本电脑 CPU 的事实会带来更好的性能。
如果不是原始处理速度,有人可以解释一下 CPU 基准测试的分数实际上指的是什么吗?为什么我看到性能改善如此之小?
答案1
在比较中,有 6 个(12 个虚拟)附加核心,在您的测试中,您拥有相同数量的核心。
你仅将速度提高了 7%,却完成了 11% 以上的工作,对我来说这是一个不错的进步。