GTFaker 2020-05-08 15:34 采纳率: 0%
浏览 903

java使用jna调用dll文件时,造成物理内存递增不释放。

我在java代码这边使用JNA调用了dll算法文件,但是每调用一次,我的本机物理内存就会叠加一次,不会释放内存,这个内存jvm的gc没办法释放,不属于jvm内存范畴,但是在dll文件中已经释放了内存,查看相关帮助文档后,有这种说法,就是跨平台访问dll的时候,存在大量数据传递时,dll要想读取java的数据,java会先把数据放在内存中,但是gc没办法释放这个内存,造成碎片,但是dll里也释放了内存,也无法释放这个数据内存,求大神帮忙解答下这个问题,怎样才能解决这个问题

TestDll Instance = (TestDll) Native.loadLibrary(".........",TestDll.class);



   int Test1(double [] a, int b, int c, double [] d,double [] e, int f, double[] g, int[] h,double[] i, int[] j, int[] k);


   int Test2(int a, double[] b, double[] c,IntByReference d, DoubleByReference e, IntByReference f, IntByReference g);


   double Test3(double[] a, int b, double[] c, int d);


   int Test4(double[] a, int b, double c, int d, int e, int f, double g, double h, double[] i, int j);


  double Test5(double[] a, int b, double c, int[] d);

图片说明

  • 写回答

1条回答 默认 最新

  • joycoljade 2020-09-23 17:25
    关注
    评论

报告相同问题?

悬赏问题

  • ¥15 如何在scanpy上做差异基因和通路富集?
  • ¥20 关于#硬件工程#的问题,请各位专家解答!
  • ¥15 关于#matlab#的问题:期望的系统闭环传递函数为G(s)=wn^2/s^2+2¢wn+wn^2阻尼系数¢=0.707,使系统具有较小的超调量
  • ¥15 FLUENT如何实现在堆积颗粒的上表面加载高斯热源
  • ¥30 截图中的mathematics程序转换成matlab
  • ¥15 动力学代码报错,维度不匹配
  • ¥15 Power query添加列问题
  • ¥50 Kubernetes&Fission&Eleasticsearch
  • ¥15 報錯:Person is not mapped,如何解決?
  • ¥15 c++头文件不能识别CDialog