/java-cpu-benchmark

Primary LanguageJavaGNU General Public License v2.0GPL-2.0

Java版CPU性能测试工具

banner.jpg

全平台CPU同场竞技!

🇨🇳:中文

🇬🇧:English

前言

该项目借鉴了SuperPI的CPU性能计算方式,通过多轮迭代估算出当前CPU的性能成绩。

项目缘由

本人突发奇想,想用Android机上的Termux APP搭建Java后端服务器,但是苦于不清楚CPU性能,但是又没有一个公平的CPU性能测试工具,没法比较手机CPU性能和台式机CPU性能,因此萌生了这个想法。

还有一点公司服务器CPU性能我也不清楚,总感觉很卡,我想让这些至强服务器CPU和我的电脑的CPU进行性能比较(想嘲讽一下公司的老旧服务器的性能),苦于没有一个合适的CPU性能比较工具(Linux、Windows、MACOS、Android等等,没有一个通用的CPU性能比较软件),因此就写了这个项目。

目标就是算法一致,公平公正的……体现出该CPU上JVM的运行性能,哈哈!

优势

  • 均衡,使用统一标准,统一算法,统一计算时间,避免了度量的不一致性
  • 覆盖广泛,采用的是递进算法,即使是很古老的,速度很慢的CPU也能跑出较为准确的分数,不至于卡死
  • 快速,默认单线程和多线程都执行10秒,仅需20秒即可得出当前CPU的性能成绩
  • 全平台支持,支持Windows、Linux、MacOS等,甚至在手机上可以使用Termux+JDK17,能够计算手机的CPU性能
  • 基于JDK8开发,兼容性更好
  • 算法简洁,原本最终成绩考虑使用各种复杂算法对最终分数进行调和,但是发现最简单的反而是最好的

使用方法

  • 打出jar包
mvn clean package
  • 执行cli版本jar包
java -jar jcpu-benchmark-cli-*.jar
  • 执行ui版本jar包 双击打开Java版CPU性能测试工具.jar,即可。如果无法打开,则尝试使用命令行执行

  • 执行native版本 直接执行即可

输入:1,即可执行CPU性能测试

输入:q,可退出程序

TODOS

  • MACOS CPU信息无法获取
  • 增加结果提交功能(目前服务器还没搭建完成)
  • 软件更新提示
  • Android APP版本,待开发

CPU性能汇总(1.3版)

CPU型号/手机型号 单核分数 多核分数
AMD R7 7700X 5984.44 55417.39
小米9(SD 855) 2136.29 9836.49
AMD R5 5600G 3636.00 26248.29
AMD R3 3100 3110.49 16306.12
Xeon(R) E5-2603 1066.33 13071.72
Xeon(R) E5-2698*2 1464.18 44581.40
AMD R5 3550H 1944.20 6942.51
AMD R7 2700X 2922.01 21649.12
华为Mate10(麒麟970) 1136.37 6096.32
小米13(SD 8Gen2)均衡模式 2744.84 14388.14
小米13(SD 8Gen2)性能模式 3416.00 14211.33
红米K40(SD 870)均衡模式 2832.06 10862.74
红米K40(SD 870)性能模式 3014.79 11107.46
AMD Athlon 200GE 2421.77 6189.99
i7 8700K 3209.19 22849.04
i7 12700H 4813.22 36004.76
Apple M1 3310.99 25711.04

CPU性能汇总(测试可能有误差)(1.2版)

CPU型号/手机型号 单核分数 多核分数
AMD R7 7700X 5145.48 46456.64
AMD R5 5600G 3194.11 23789.40
AMD R3 3100 2639.38 15859.60
小米13(SD 8Gen2) 2399.23 13303.83
小米9(SD 855) 1982.45 9188.78
华为Mate10(麒麟970) 923.60 5293.64
红米3S(SD 430) 390.31 2127.60
i7 8700K 2903.54 21985.10

项目结构

无界面命令行版本,最小的形式方式

核心模块,包含CPU性能计算算法,获取CPU信息等

对benchmark-cli采用native打包,可以在对应系统的服务器上直接运行,不需要JVM

数据结果上报模块,目前还没开始制作,且为了服务器安全,和数据准确性,该模块不开源

java swing制作的带GUI的图形化界面版本。目前使用Graalvm打包还有问题,执行会报错,目前还不清楚如何解决

联系方式

欢迎加入我的群聊

群号:170618278

没错,就是VMware虚拟机交流群,其实就是一个普通的技术吹水群罢了🤣 欢迎加入我的群聊