V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
yazinnnn
V2EX  ›  Java

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

  •  
  •   yazinnnn · Aug 23, 2021 · 1681 views
    This topic created in 1714 days ago, the information mentioned may be changed or developed.

    一个调用第三方 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 需要手动释放么?
    
    
    No Comments Yet
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   2432 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 37ms · UTC 07:50 · PVG 15:50 · LAX 00:50 · JFK 03:50
    ♥ Do have faith in what you're doing.