我试图弄清楚为什么 Java 的 BigInteger 乘法基准始终比使用复制到我的项目的 BigInteger.java 源代码中的实例快 3 倍。使用 jmh 运行基准测试。这是一个示例输出,请注意,加法的运行效果大致相同。
\nBenchmark Mode Cnt Score Error Units\nBenchmarkTest.javaBigInteger_add thrpt 5 856062.338 \xef\xbf\xbd 34040.923 ops/s\nBenchmarkTest.sourceBigInteger_add thrpt 5 842421.746 \xef\xbf\xbd 39630.112 ops/s\nBenchmarkTest.javaBigInteger_multiply thrpt 5 525649.635 \xef\xbf\xbd 15271.083 ops/s\nBenchmarkTest.sourceBigInteger_multiply thrpt 5 133944.766 \xef\xbf\xbd 1832.857 ops/s\nRun Code Online (Sandbox Code Playgroud)\n我这样做的原因是试图将其中的一部分移植到 Kotlin,我注意到基准测试有点慢。为了看看它是否与 Kotlin 有关,我从图片中删除了它,并在纯 java 中执行了所有操作,得到了完全相同的结果。如果源代码/算法完全相同,为什么这个基准测试会有如此大的差异?
\n\n