Android和C++从JNI到java返回值,并处理数组命中 为了提高速度,我有一些代码从java转换到C++。我所看到的所有转换都是基于矩阵或向量的算法,因此我想知道,当我将值返回给Java时,我是否以基本浮点数组的形式返回值,从而否定了所有本机代码的

Android和C++从JNI到java返回值,并处理数组命中 为了提高速度,我有一些代码从java转换到C++。我所看到的所有转换都是基于矩阵或向量的算法,因此我想知道,当我将值返回给Java时,我是否以基本浮点数组的形式返回值,从而否定了所有本机代码的,java,android,arrays,java-native-interface,hit,Java,Android,Arrays,Java Native Interface,Hit,Android和C++从JNI到java返回值,并处理数组命中 为了提高速度,我有一些代码从java转换到C++。我所看到的所有转换都是基于矩阵或向量的算法,因此我想知道,当我将值返回给Java时,我是否以基本浮点数组的形式返回值,从而否定了所有本机代码的好处。所有内容都是用java编写的,在java中,我必须将值插回需要从jni返回的数组中提取所有内容,并将其插回各个浮点。这是没有问题的,但当一切都说了做了的时候,我将通过提取值并将它们存储在单个浮点数中来扼杀我获得的性能。我可以将所有内容都修

Android和C++从JNI到java返回值,并处理数组命中 为了提高速度,我有一些代码从java转换到C++。我所看到的所有转换都是基于矩阵或向量的算法,因此我想知道,当我将值返回给Java时,我是否以基本浮点数组的形式返回值,从而否定了所有本机代码的好处。所有内容都是用java编写的,在java中,我必须将值插回需要从jni返回的数组中提取所有内容,并将其插回各个浮点。这是没有问题的,但当一切都说了做了的时候,我将通过提取值并将它们存储在单个浮点数中来扼杀我获得的性能。我可以将所有内容都修改为使用数组,但为了便于编程,我宁愿尽可能保留所有现有代码


<> P>所以我想知道当你处理从C++中的JNI方法返回的数组中提取值时是否执行了一次性能命中,如果是,命中的程度是什么?< /P>你是否对样本数据进行了性能测试,以查看你是否真的获得了C++的速度?我只是开始将一些基本方法转换成C++。这是矢量运算…我会在做了足够多的运算后再发回来…除了提高帧速率,你知道我可以在android sdk或ndk中使用什么工具来检查循环速度之类的东西吗…我正在使用eclipse编程,如果这对你的答案有帮助的话。好的,到目前为止,我只替换了三个java方法,C++中使用的java方法,其中IE使用特征库来执行向量操作,现在在Java方法控制下的对象的屏幕上的一些移动现在至少是原来速度的两倍。我现在最关心的不是处理数组,而是确保我在本地的垃圾收集正确。……在C++中用JNI在本地的垃圾桶上提垃圾的提示?如果你使用矩阵和矢量代码,你也应该看看RenderScript。