相关疑难解决方法(0)

java 8中javaw进程的私有字节增加

我的项目已经开始使用java 7中的java 8.

切换到java 8后,我们发现消耗的内存随着时间的推移而越来越高.

以下是我们所做的调查:

  • 只有从java7和java8迁移后才会出现问题
  • 因为元空间是与内存相关的唯一内容,它是从hava 7变为java 8.我们监视了元空间,这不会超过20 MB.
  • 堆也保持一致.

现在剩下的唯一途径是分析内存如何在java 7和java 8中进行分发,特别是私有字节内存.任何想法或链接在这里将不胜感激.

注意:此javaw应用程序是基于swing的应用程序.

更新1:使用NMT工具分析本机内存并生成与基线相比占用的内存差异.我们发现堆保持相同但线程正在泄漏所有这些内存.因此Heap没有变化,我假设这个泄漏是由于本机代码.

所以挑战仍然存在.关于如何分析所有线程占用的内存的任何想法在这里都会有所帮助.以下是从本机内存跟踪中获取的快照.

在这张图片中,你可以看到88 MB的线程增加了.竞技场和资源处理数量增加了很多.

在此输入图像描述

在这张图片中你可以看到这个Malloc中增加了73 MB.但是这里没有显示方法名称. 在此输入图像描述

所以请在理解这两个截图时提供一些信息.

java-native-interface multithreading native java-7 java-8

18
推荐指数
2
解决办法
1910
查看次数