0

我用 JNI 从 Java 调用 C 代码作为本机代码。所以,我创建了一个 dll 并从 Java 代码中加载它。这很奇怪,但是如果我运行与 .exe 相同的 C 代码,它会比用作本机代码的相同代码更快。为什么??我使用 Windows 7 64 位、jdk 32 位、Cygwin、32 位 dll 构建 dll 的调试和发布模式有什么区别吗?

4

1 回答 1

0

调试模式和发布模式之间肯定存在差异。在调试模式下,编译器将避免激进的优化,因为它们往往会使调试更加困难。在发布模式下不会。因此,如果您的 .exe 是在发布模式下构建的,而您的 DLL 是在调试模式下构建的,则可能会产生您描述的效果。(是否真的造成差异的原因,这里没有足够的信息可以说明。你能确保两者的构建方式相同,并报告速度差异是否消失了吗?)

于 2011-03-21T16:45:08.347 回答