2023-01-21 250
我有一个大的C结构(大约40个成员,int和char []),我必须通过JNI到JNI到Java侧进行进一步处理.这反复发生. (我已经将GetMethodID()等放入init()函数上,所以我只需要给它们打电话一次.)
这样做的有效方法是什么?
我可以想到:
初始化(公共)成员
我忽略了什么吗? (这是我与JNI的第一个”关闭战斗”.)真的没有有效的方法来”同步” C结构和Java结构?
什么是更有效的传递方法1.或2.?如果是1.
感谢您的输入.
编辑:稍微改写; 2.不需要当课程,如果还有其他解决方案来处理Java端的C数据,我严格不需要在Java侧.
编辑2:我在C ++中执行此操作,但是结构本身源于C-Linkage回调函数,即没有C ++ – 特定于该问题.改写为” C”而不是” C ++”.
为了纯效率,最好最大程度地减少通过JNI的呼叫,因此您最好的选择是通过选项1发送所有数据并创建新对象.
,如果您想避免每个更新分配新对象,但在Java side上也可以在Java端有一个”接收器(… 40 params …)”方法.
对不起,我没有时间写一个深入的答案或进一步寻找这个,但是不久前我不得不与JNI做很多工作,我发现使用SWIG极大地帮助了极大的帮助.我不确定它的效率,但我认为它会生成非常有效的代码.
无论如何,请检查一下 swig 结构.
祝你好运.
以上所述是小编给大家介绍的有效地通过JNI将大C结构通过,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对77isp云服务器技术网的支持!
原文链接:https://77isp.com/post/26255.html
=========================================
https://77isp.com/ 为 “云服务器技术网” 唯一官方服务平台,请勿相信其他任何渠道。
数据库技术 2022-03-28
网站技术 2022-11-26
网站技术 2023-01-07
网站技术 2022-11-17
Windows相关 2022-02-23
网站技术 2023-01-14
Windows相关 2022-02-16
Windows相关 2022-02-16
Linux相关 2022-02-27
数据库技术 2022-02-20
抠敌 2023年10月23日
嚼餐 2023年10月23日
男忌 2023年10月22日
瓮仆 2023年10月22日
簿偌 2023年10月22日
扫码二维码
获取最新动态