作者热门文章
- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我有一个执行 5 个不同任务的 java 程序。当我使用 -Xmx512m 内存参数运行程序时,任务 1-4 运行正常,但任务 5 内存不足。当我使用 -Xmx1024m 运行程序时,所有 5 个任务都运行良好,但之前使用 512m 堆运行良好的任务 1-4 现在几乎用完了所有 1024m 堆。如果我使用 -Xms128m -Xmx1024m,也会发生同样的事情。
指示 JVM 保持低内存利用率(例如任务 1-4 为 512m)并且仅在实际需要时使用更多内存(例如任务 5)的内存参数是什么?
也许我需要一种比默认设置更频繁地激活垃圾收集器的方法?
最佳答案
这两个参数提示jvm何时需要调整其堆大小:
-XX:MaxHeapFreeRatio=10
-XX:MinHeapFreeRatio=10
这几乎意味着如果在 gc 之后,超过 10% 的堆是空闲的,它会尝试将内存还给操作系统。并且只有在 gc 之后使用了超过 90% 的堆时,它才会增长堆。
这可能会减慢您的程序,因为 gc 会不断更改分配的内存大小。如果您的程序在短时间内分配大量内存,它可能根本没有效果。
关于java - 如何指示 JVM 尽可能减少内存占用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11123268/
我知道在 KDB 中,如果您有一个列表,例如... l:`apples`oranges`pears` 您可以像下面这样进行 N 次随机选择: 9?l 但是如何尽可能均匀地选择列表中的每个项目? 最佳答
我真的厌倦了它。我有一个高级 Web 应用程序依赖于大量 Javascript 库(jQuery、jQueryUI、OpenLayers、highcharts、EJSChart 等等)。不用说,Int
我是一名优秀的程序员,十分优秀!