前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >被内存溢出苦苦折磨的小测试!!!

被内存溢出苦苦折磨的小测试!!!

作者头像
软件测试君
发布2020-11-09 14:25:16
6020
发布2020-11-09 14:25:16
举报
文章被收录于专栏:测试人生

前言

一直在做批量测试工具的研发,所谓批量,那么数据量不言而喻了。

什么级别呢,目前本程序就个人测试而言,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执行程序。

最后

再次执行打包程序,就正常了,且稳定奔放,没有再报错,问题解决。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-10-29,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 软件测试君 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
  • 遇到的问题
  • 尝试过程
  • 解决方案
    • 1、-J-Xmx512m
      • 2、-XX:PermSize=512M -XX:MaxPermSize=1024M
        • 3、添加配置文件
        • 最后
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档