我正在从命令行运行jmx
JVM_ARGS="-Xms2048m -Xmx4096m -XX:4096ize=4096m -XX:MaxNewSize=4096m" && export JVM_ARGS && ./jmeter.sh -n -t ./jmeter-ec2.jmx -l ./scriptresults.jtl
您的JVM参数是错误的,只需保留:
-XMS2048M-XMX4096M
您不知道有多少线程会发生这种情况,也不知道您是在GUI模式下还是在非GUI模式下运行,所以:
httpsampler.max_bytes_to_store_per_request
另一个选择是通过在http://jmeter.apache.org/usermanual/component_reference.html#http_request:
基于@ari答案的解决方案我已经更新了代码。现在它被优化到只使用1MB(我不知道这是否是将进程分成块的最佳方式,但现在它似乎得到了改进,并且不提供OOM)。我将尝试通过检测可以使用多少堆内存来进一步优化它,但我不确定是否可以实现这一点。直到比这似乎是最好的选择。再次感谢@Ari。
问题内容: 我有一个1.2 GB的json文件,当反序列化时,应该给我一个包含15百万个对象的列表。 我要反序列化的计算机是具有16核心和32 GB Ram的Windows 2012服务器(64位)。 该应用程序已针对x64构建。 尽管有这种情况,当我尝试读取json文档并将其转换为我遇到内存不足异常的对象列表时。当我查看任务管理器时,我发现仅使用了5GB内存。 我尝试的代码如下。 一个。 b。
我正在努力解决古老的字谜问题。多亏了许多教程,我能够迭代一组字符串,递归地找到所有的排列,然后将它们与英语单词列表进行比较。我发现的问题是,在大约三个单词之后(通常是关于“变形”之类的东西),我会得到一个OutOfMemory错误。我试着把我的批分成小的集合,因为它似乎是消耗我所有内存的递归部分。但即使只是“变形”也把它锁起来了... 编辑:根据出色的反馈,我已经将生成器从排列更改为工作查找: 它
我试图使用javax.crypto下的类和用于输入/输出的文件流来实现一个加密/解密程序。为了限制内存使用,我使用-xmx256m参数运行。 它可以很好地对较小的文件进行加密和解密。但是当解密一个巨大的文件(1G大小)时,会出现内存不足的异常: 编辑2: 通过更多的测试,它可以处理的最大文件大小约为堆大小的1/4。比如,如果设置-xmx256m,大于64m的文件将无法解密。
为了加载几个大的(~200MB) JSON文件,执行了以下代码: 以下是 Pycharm 的自定义 VM 选项的外观(最大 30GB 堆大小,RAM 为 32GB): 已应用“使缓存失效/重新启动”的流行建议。 加载2个文件(总计约400MB)后,在第三次加载期间,引发异常“MemoryError”。 我不明白为什么如果我有高达30GB的堆大小,内存错误抛出后只有400MB?
我用SXSSF写了100万条记录(最坏的情况)。 以下是我编码的方式。我必须将记录写入已经存在的excel模板。此模板在类路径中可用。我将此模板复制到公共位置。使用 XSSFWorkBook 加载此文件。SXSSFWorkbook 使用 XSSFWorkBook 和 window size(-1) 作为参数进行初始化。 当记录计数达到100的倍数时,我将冲洗工作表。 但是在执行这个过程中,堆内存逐