【发布时间】:2021-11-15 13:43:34
【问题描述】:
我试图弄清楚为什么 Java 的 BigInteger 乘法基准始终比使用从 BigInteger.java 源代码复制到我的项目的实例快 3 倍。使用 jmh 运行基准测试。这是一个示例输出,请注意加法运行大致相同。
Benchmark Mode Cnt Score Error Units
BenchmarkTest.javaBigInteger_add thrpt 5 856062.338 � 34040.923 ops/s
BenchmarkTest.sourceBigInteger_add thrpt 5 842421.746 � 39630.112 ops/s
BenchmarkTest.javaBigInteger_multiply thrpt 5 525649.635 � 15271.083 ops/s
BenchmarkTest.sourceBigInteger_multiply thrpt 5 133944.766 � 1832.857 ops/s
我这样做的原因是试图将其中的一部分移植到 Kotlin 我注意到基准测试有点慢。为了查看它是否与 Kotlin 相关,我从图片中删除了它,并在纯 Java 中完成了所有操作,结果完全相同。如果源代码/算法完全相同,为什么这个基准测试会有如此大的差异?
【问题讨论】:
标签: java performance math benchmarking biginteger