2011-03-21 74 views
0

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

回答

0

调试和发布模式之间肯定存在差异。在调试模式下,编译器将避免激进的优化,因为它们往往会加大调试难度。在发布模式下它不会。因此,如果您的.exe是以发布模式构建的,并且您的DLL处于调试模式,那么可能会产生您描述的效果。 (不管它实际上是差异的原因,没有足够的信息在这里说,你可以确保双方都是建立在相同的方式和汇报的速度差是否会消失?)