V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
yazinnnn
V2EX  ›  Java

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

  •  
  •   yazinnnn · 2021-08-23 14:16:34 +08:00 · 1115 次点击
    这是一个创建于 948 天前的主题,其中的信息可能已经有所发展或是发生改变。

    一个调用第三方 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 需要手动释放么?
    
    
    目前尚无回复
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   3093 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 14:33 · PVG 22:33 · LAX 07:33 · JFK 10:33
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.