被内存溢出苦苦折磨的小测试!!!
前言
一直在做批量测试工具的研发,所谓批量,那么数据量不言而喻了。
什么级别呢,目前本程序就个人测试而言,2199W数据暂时没问题,一次性写入大约九分钟左右。
遇到的问题
都是因数据量大,读或写操作,遇到的瓶颈,一言不合就内存溢出,也就是常见的这个:java.lang.OutOfMemoryError: Java heap space。
经验而言,肯定会修改IDEA运行参数,即电脑支持最大内存了,如:-Xms8092m -Xms8092m。
可能有的同学会说了,直接让他在IDE上跑,设定运行jvm参数就好了呀。
试想,如果要给别人使用,肯定要脱离IDE,打包成可执行程序的,才更具易用性。
不能直接让人家在IDE上跑吧,那还是工具嘛,o(╯□╰)o
尝试过程
再来看打包工具jvm参数设置页面,如下:
按照网上很多的说法就是,加大jvm内存设置即可,但将设定jvm参数加入打包中,还是第一次尝试。
这样做的好处是什么?
当执行这个jar包程序,就不需要指定运行参数了。
解决方案
1、-J-Xmx512m
参考“Allow VM。。。”那一行写的,设置为 -J-Xmx512m至-J-Xmx8192m,一跑还是内存溢出,明显这个方法无效,直接废弃掉。
2、-XX:PermSize=512M -XX:MaxPermSize=1024M
参考MyEclipse中设置VM的方式,设置成-XX:PermSize=512M 至 -XX:MaxPermSize=8192M,再一跑,还是一样内存溢出,一样的,这个方法也废弃掉。
3、添加配置文件
- 清空上图中文本框中的数据,勾选“Allow VM ....”的复选框;
- 假设打成的可执行程序名称为run.exe,在它的同级目录下新建文件run.exe.vmoptions;
- run.exe.vmoptions文件的内容为:
-Xms4096m
-Xmx8192m
- 重启exe执行程序。
最后
再次执行打包程序,就正常了,且稳定奔放,没有再报错,问题解决。
优秀不够,你是否无可替代
软件测试交流QQ群:721256703,期待你的加入!!
欢迎关注我的微信公众号:软件测试君

分类:
生活
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· [.NET]调用本地 Deepseek 模型
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· .NET Core 托管堆内存泄露/CPU异常的常见思路
· PostgreSQL 和 SQL Server 在统计信息维护中的关键差异
· C++代码改造为UTF-8编码问题的总结
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· 清华大学推出第四讲使用 DeepSeek + DeepResearch 让科研像聊天一样简单!
· 实操Deepseek接入个人知识库
· CSnakes vs Python.NET:高效嵌入与灵活互通的跨语言方案对比
· Plotly.NET 一个为 .NET 打造的强大开源交互式图表库