如何启动没有堆最大内存限制的JVM?这样它可以占用尽可能多的内存吗?
我搜索了是否有这样的选项,但我似乎只找到-Xmx和-Xms选项.
编辑:
假设我有一台4GB RAM的服务器,它只运行我的应用程序.而且,假设我有另一台32GB RAM的服务器.我不想以4GB的内存限制启动我的应用程序,因为第二台机器应该能够处理更多的对象
the*_*472 21
-XX:MaxRAMFraction=1将自动配置最大堆大小为物理RAM的100%或cgroups UseCGroupMemoryLimitForHeap设置的限制(如果已设置).
OpenJDK 10还将支持基于百分比的选项,MaxRAMPercentage允许更细粒度的选择JDK-8186248.为非堆数据结构留出一些备用容量以避免交换非常重要.
你不能(或者至少,我不知道支持它的JVM实现).JVM需要在启动时知道它可以分配多少内存,以确保它可以在虚拟内存中保留连续的范围.这允许 - 以及其他 - 用于在存储器管理中更简单的推理.
如果虚拟内存在运行时将被扩大,这可能会导致零碎的虚拟内存的范围,使得跟踪和引用内存更难.
| 归档时间: |
|
| 查看次数: |
3467 次 |
| 最近记录: |