我正在研究的项目在其Java部分中有一个地图,有时,这个地图由其c ++部分使用,现在的策略是将地图编码为Json字符串并将其传递给c ++,然后解码它。但是地图随着应用程序的运行而增长,使得编码和解码成本越来越高,是否有更快的方法将整个地图从Java传递到c ++?
Java地图最初是一个JSON对象,这意味着其中只包含字符串,数字,数组和地图。
答案 0 :(得分:1)
一种选择是将Java映射传递给C并让它对Java进行JNI调用以访问该对象。另一种方法是将原始字符串反向传递给C并在那里解析(应该更快)并通过JNI在Java中访问它。两者都不应该有明显的时间损失,只要第一种方法是缓存Java映射的方法ID和类对象。