请教一些关于 JNA 的杂乱问题。。

2021-08-23 14:16:34 +08:00
 yazinnnn

一个调用第三方 so 库的程序,内存总是随着运行时间暴涨,dump 下来的 java heap 并不大,于是怀疑是 native heap 出现了内存泄漏。。

之后程序加上了定时 gc,情况只是稍微好转,native heap 的内存依旧持续增长。。。

请问下面哪些情况需要主动释放内存来避免 native heap 的内存泄漏呢?

//1 jna 回调 中的 pointer 或者结构体
public interface cb extends Callback {
        public void invoke(LLong lAttachHandle, Pointer pstGrayInfo, Pointer dwUser);
}

//pstGrayInfo 需要主动释放么?


//2 函数写入的出参结构体

boolean foo(Structure outparam);

//outparam 及其中包裹的结构体需要主动释放么?

//3 发现一些结构体中包含其他结构体,这个成员变量却不需要初始化就能正常使用

public static class A extends Structure {
		public B b;
}

public static class B extends Structure{
		public int a;
}

这里 A 中的成员变量 b 不需要初始化,这个 b 需要手动释放么?

1131 次点击
所在节点    Java
0 条回复

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/797462

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX