java - 为什么java 8中MaxMetaSpaceSize的默认值为18446744073709486080?
问题描述
我知道 MaxMetaspaceSize 默认是无限的,Windows x64 的最大内存大小2^64(18446744073709551616)
以字节为单位,那么为什么不将 MaxMetaspaceSize 设置为,2^64
而是将其设置为18446744073709486080
等于:2^64-2^16
?
解决方案
HotSpot JVM 中的“ulimited”大小由适合 64 位整数变量的最大值表示,即 2 64 -1。
MaxMetaSpaceSize
然后进一步对齐(向下舍入)到最小元空间分配单元
// Ideally, we would be able to set the default value of MaxMetaspaceSize in
// globals.hpp to the aligned value, but this is not possible, since the
// alignment depends on other flags being parsed.
MaxMetaspaceSize = align_size_down_bounded(MaxMetaspaceSize, _reserve_alignment);
在 Windows 上等于 64K (2 16 )。
推荐阅读
- microsoft-graph-api - Sharepoint Drive Delta 令牌不反映公共链接更改
- controller - TYPO3 Flash Message 有效但没有样式
- java - 在不同的 docker 容器上运行的 Spring Boot 和 Angular 应用程序访问相同的端口 443?
- regex - 从仅匹配正则表达式模式的字符串中提取字符
- mysql - 使用列中的开始和结束索引修剪不需要的文本
- python - 密码破解程序
- html - 单击时关闭的深色叠加层?
- android - Android使用什么样的任务调度方式?
- python - 使用 Python 3.7 在 Raspberry PI 3B 上播放视频
- r - R Shiny 在本地工作但不在服务器上