我正在考虑编写一个可能使用本机代码的Java应用程序(最有可能用c(++)编写,而不是汇编),我希望看到这样做的优点和缺点。我知道本机代码旨在在特定的机器/机器规格上运行,而不是由JVM运行的代码,JVM当然是虚拟机。如果我理解正确,在其本机上运行的本机代码运行速度比字节码快,这是正确的吗?
基本上,如果我正在编写一个程序,是否值得使用本机代码进行某些计算和一些其他函数来尝试减少所需的时间和处理器的压力?如果我使用本机代码(如果我只有我的系统来编写/测试代码),是否有一种可靠的方法使其适用于几乎所有系统?
答案 0 :(得分:5)
从您的问题来看,您还没有处理过探索Java专用解决方案的所有可能性的阶段,已经遇到了障碍,现在正在为您的问题寻找基于代码的本机解决方法。因此,强烈的建议是要避开涉及本机代码的解决方案。
请记住,JVM 不天真地解释字节码;它在运行时将其编译为优化的本机代码。使用正确编写的Java代码,您不太可能遇到性能问题。