最佳答案
假设我的 Java 程序的瓶颈在于计算一堆矢量点积的紧循环。是的,我已经分析过了,是的,这是瓶颈,是的,这很重要,是的,这就是算法的原理,是的,我已经运行了 ProGuard 来优化字节码,等等。
工作本质上是点积。比如,我有两个 float[50]
,我需要计算成对乘积的和。我知道存在处理器指令集来快速批量地执行这类操作,比如 SSE 或 MMX。
是的,我可以通过用 JNI 编写一些本地代码来访问它们。JNI 调用结果是非常昂贵的。
我知道你不能保证什么 JIT 将编译或不编译。有人听说过使用这些指令的 JIT 生成代码吗?如果是这样的话,Java 代码有没有什么特别之处可以帮助我们用这种方式编译它呢?
可能是“没有”值得一问。