代码之家  ›  专栏  ›  技术社区  ›  FiReTiTi

强制JNI Get<type>ArrayElement返回指针

  •  1
  • FiReTiTi  · 技术社区  · 9 年前

    在JNI方法Get(Type)ArrayElements中 javadoc ,是这样写的

    " 返回的数组可以是Java数组的副本 ".

    因此,此方法返回Java数组的指针或副本。我在代码中做了一个简单的测试,实际上,这个方法返回了一个副本。 除了我希望使用本地方法来加速巨大的图像处理,因此处理BIG数组。但如果使用本机代码意味着复制我的数组,那么性能将受到严重影响,而且我可能缺少RAM。

    所以我的问题是:有没有办法迫使这个方法返回指针而不是副本? 谢谢你的帮助。

    1 回复  |  直到 9 年前
        1
  •  1
  •   Alex Cohn    9 年前

    不,您不能强制非复制。你可以 支持 改为使用 GetPrimitiveArrayCritical() 具有相应的版本。仔细阅读文档,因为除了通常的JNI限制之外,使用此函数对您所能做的事情也有很大的限制。