美文网首页
java JavaFx内存溢出解决方案

java JavaFx内存溢出解决方案

作者: 在路上lll | 来源:发表于2023-03-06 14:57 被阅读0次

    1、下载visualvm,用于内存分析,下载地址:https://visualvm.github.io/download.html

    企业微信截图_16781712741996.png
    2、安装好启动后在Tool栏中选择Plugins,安装Visual GC插件。
    企业微信截图_16781713059576.png
    企业微信截图_16781713286126.png
    3、在IDEA的Edit Configurations中的VM一栏配置如下方案:
    -Xms16m -Xmx128m -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=C:\IdeaProject\hprof\jvmtest.hprof
    企业微信截图_16781714255072.png
    将虚拟机内存设置小是因为好让内存溢出更快的产生。
    7、打开visualvm,选择启动的项目查看内存状况,我这里是内存溢出修复后的,有内存溢出时蓝色线会与黄色线逐渐持平,此处会抛出内存溢出异常。
    企业微信截图_16781715591493.png
    发生内存溢出后,通过visualvm>File>Load,加载在程序产生的.hprof文件,并进行如下图操作。
    选择Objects
    企业微信截图_1678171889484.png
    内存溢出一般发生在自己写的代码和第三方库,先找到可能会产生内存溢出的类,比如一直打开和关闭某个界面时发生内存溢出,肯定是该界面中代码导致的,比如下面ArticleProcessingPlantRichText类,有29个实例,一直没被销毁,选择其中一个实例,点击references,查看被谁持有,然后在对应代码做检查,修改后再次启动项目测试。(需要注意的是,修改后再次启动时需要把visualvm关闭,不然之前的
    .hprof被visualvm占用后无法产生新的*.hprof文件!)
    企业微信截图_1678172134815.png

    相关文章

      网友评论

          本文标题:java JavaFx内存溢出解决方案

          本文链接:https://www.haomeiwen.com/subject/dbymldtx.html