Dll C代码作为java本机代码使用非常慢
我使用JNI从Java调用C代码作为本机代码。 因此,我创建了一个dll,并从Java代码加载它。 这很奇怪,但是如果我运行与.exe相同的C代码,它比作为本机代码使用的代码要快。 为什么? 我使用Windows7 64位,jdk 32位,Cygwin,一个32位的dllDll C代码作为java本机代码使用非常慢,dll,performance,java-native-interface,native-code,Dll,Performance,Java Native Interface,Native Code,我使用JNI从Java调用C代码作为本机代码。 因此,我创建了一个dll,并从Java代码加载它。 这很奇怪,但是如果我运行与.exe相同的C代码,它比作为本机代码使用的代码要快。 为什么? 我使用Windows7 64位,jdk 32位,Cygwin,一个32位的dll 构建dll的调试模式和发布模式之间有什么区别吗?调试模式和发布模式之间肯定有区别。在调试模式下,编译器将避免激进的优化,因为它们会使调试更加困难。在释放模式下,它不会。因此,如果您的.exe是在发布模式下构建的,而DLL是在调
构建dll的调试模式和发布模式之间有什么区别吗?调试模式和发布模式之间肯定有区别。在调试模式下,编译器将避免激进的优化,因为它们会使调试更加困难。在释放模式下,它不会。因此,如果您的.exe是在发布模式下构建的,而DLL是在调试模式下构建的,那么可能会产生您描述的效果。无论这是否真的是造成差异的原因,这里没有足够的信息来说明。你能确保两者都是以相同的方式构建的,并报告速度差是否消失了吗