Android ndk 为什么EclipseCndkJNI的执行速度比GCCShell慢6倍?

Android ndk 为什么EclipseCndkJNI的执行速度比GCCShell慢6倍?,android-ndk,Android Ndk,我有一个程序,它在jni中使用C ndk子例程,它处理一个3204x2406映像文件,当eclipse在ndk_debug=0的情况下运行*(无调试)时,需要6秒以上的时间 我用GCC在android上编译了相同的代码,在shell中运行不到1秒 代码由循环和整数数学组成。EclipseNDK程序和GCCShell程序都从完全相同的位置访问完全相同的文件。在6秒内没有跟踪语句。唯一的外部调用是2406个read语句 eclipse是google集成下载21.0.0,它使用Juno 4.2.1和c

我有一个程序,它在jni中使用C ndk子例程,它处理一个3204x2406映像文件,当eclipse在ndk_debug=0的情况下运行*(无调试)时,需要6秒以上的时间

我用GCC在android上编译了相同的代码,在shell中运行不到1秒

代码由循环和整数数学组成。EclipseNDK程序和GCCShell程序都从完全相同的位置访问完全相同的文件。在6秒内没有跟踪语句。唯一的外部调用是2406个read语句

eclipse是google集成下载21.0.0,它使用Juno 4.2.1和c/c++8.1.1。是的,我重新启动了eclipse并清理了项目

我现在正在考虑尝试调用或链接到GCC代码,但一直感觉我一定错过了一些愚蠢的东西

什么是“Android上的GCCShell?”我假设Java和Android操作系统的活动周期代码极大地消耗了性能。Java没有临时变量,因此如果通过Java代码,它可以进行几十次分配。“android上的GCC shell”是android上的本机GCC编译器,其中c/c++程序通过android的linux shell编译和运行,没有任何Java、NDK或eclipse。NDKC代码是用java中的单个函数调用的,因此不应该涉及java。