- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
代码如下:
System.out.println("Runtime max: " + mb(Runtime.getRuntime().maxMemory()));
MemoryMXBean m = ManagementFactory.getMemoryMXBean();
System.out.println("Non-heap: " + mb(m.getNonHeapMemoryUsage().getMax()));
System.out.println("Heap: " + mb(m.getHeapMemoryUsage().getMax()));
for (MemoryPoolMXBean mp : ManagementFactory.getMemoryPoolMXBeans()) {
System.out.println("Pool: " + mp.getName() +
" (type " + mp.getType() + ")" +
" = " + mb(mp.getUsage().getMax()));
}
在 JDK8 上运行代码是:
[root@docker-runner-2486794196-0fzm0 docker-runner]# java -version java version "1.8.0_181" Java(TM) SE Runtime Environment (build 1.8.0_181-b13) Java HotSpot(TM) 64-Bit Server VM (build 25.181-b13, mixed mode) [root@docker-runner-2486794196-0fzm0 docker-runner]# java -jar -Xmx1024M -XX:+UnlockExperimentalVMOptions -XX:+UseCGroupMemoryLimitForHeap test.jar Runtime max: 954728448 (910.50 M) Non-heap: -1 (-0.00 M) Heap: 954728448 (910.50 M) Pool: Code Cache (type Non-heap memory) = 251658240 (240.00 M) Pool: Metaspace (type Non-heap memory) = -1 (-0.00 M) Pool: Compressed Class Space (type Non-heap memory) = 1073741824 (1024.00 M) Pool: PS Eden Space (type Heap memory) = 355467264 (339.00 M) Pool: PS Survivor Space (type Heap memory) = 1048576 (1.00 M) Pool: PS Old Gen (type Heap memory) = 716177408 (683.00 M)
*最大运行时间:954728448 (910.50 M) *
Runtime.maxMemory是910.50M,我想知道这是怎么算的
On JDK7, "Runtime.getRuntime().maxMemory()" = "-Xmx" - "Survivor" , 但是在JDK8上是不行的。
最佳答案
在 JDK 8 中,公式 Runtime.maxMemory() = Xmx - Survivor
仍然是公平的,但诀窍在于如何估计 Survivor。
您尚未设置初始堆大小 (-Xms
),自适应大小策略默认处于启用状态。这意味着堆可以调整大小并且堆生成边界可以在运行时移动。 Runtime.maxMemory()
保守估计内存量,从新生代的大小中减去最大可能幸存者大小。
Runtime.maxMemory() = OldGen + NewGen - MaxSurvivor
where MaxSurvivor = NewGen / MinSurvivorRatio
在您的示例中,默认情况下 OldGen = 683 MB,NewGen = 341 MB 和 MinSurvivorRatio = 3。也就是说,
Runtime.maxMemory() = 683 + 341 - (341/3) = 910.333 MB
如果您禁用 -XX:-UseAdaptiveSizePolicy
或将初始堆大小 -Xms
设置为与 -Xmx
相同的值,您您将再次看到 Runtime.maxMemory() = OldGen + Eden + Survivor
。
关于java-8 - Runtime.getRuntime().maxMemory() 计算方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52980629/
我正在尝试在我的 Rails 应用程序的 cache_store 配置中设置 maxmemory 和 maxmemory-policy。 我在 production.rb 文件中做了以下操作: r
1) 为不同的 Redis 层设置 MaxMemory-Reserved 配置的理想值是多少?我们有什么建议/指导可以引用吗? 2) 以下哪一个是更好的方法: ->为Redis缓存中的所有对象/键实现
我正在我的本地机器上试验 redis 3.0 逐出策略——我想限制最大内存,这样 redis 就不能消耗超过 20 兆字节。 我的配置: loglevel debug maxmemory 20mb m
我最近偶然发现了两种可能的 rasterOptions,它们可以提高 R 中光栅操作的性能:chunksize 和 maxmemory。然而我很困惑有什么区别。帮助页面指出: block 大小:在处理
我运行了以下方法 Runtime.getRuntime().maxMemory()并给了85196800。 但是,我随后从命令行运行 top,它显示 PID USER PR NI V
我运行了以下方法 Runtime.getRuntime().maxMemory()并给了85196800。 但是,我随后从命令行运行 top,它显示 PID USER PR NI V
我在 docker 中将 redis 与 image: redis:5.0.3 一起使用,我时常需要面对所有 key 。我试图弄清楚发生了什么。首先检查 maxmemory-policy 和 maxm
Runtime.getRuntime().maxMemory() 显示哪个内存?是 Survivor 、 Eden 、 Old 、 Permanent 吗? 最佳答案 它是堆的最大大小。它松散地基于
在 documentation for Java's Runtime class它指出: Returns the maximum amount of memory that the Java virt
我原以为 Runtime.maxMemory() 会准确返回 -Xmx,但它返回的值较低。那么它返回什么? 最佳答案 The interpretation of the -Xmx flag is VM
我们在 Redis 服务器中设置了 120 GB 的最大内存。 所以在信息输出中 used_memory 总是小于等于 120GB 但 used_memory_rss 是~140GB 谁能解释一下这是
Redis 具有以下设置: “配置获取最大内存” 1) "maxmemory" 2) "2147483648" (也就是2G) 但是当我执行“信息” used_memory:6264349904 us
代码如下: System.out.println("Runtime max: " + mb(Runtime.getRuntime().maxMemory())); MemoryMXBe
这个问题在这里已经有了答案: What are Runtime.getRuntime().totalMemory() and freeMemory()? (7 个答案) 关闭 5 年前。 Runti
我正在尝试在 redis 中插入键-“值”。“值”是 X 字节,同时将我的应用程序插入到 redis 中。我想知道在从 ./redis-cli 触发“INFO”命令后要监视哪个参数以检查 X(或者 X
哪些 maxmemory 策略与 redis 过期机制兼容? 它只是volatile-ttl吗? noeviction 会阻止旧记录死亡吗? 最佳答案 从这里查看redis.conf : MAXMEM
有人可以澄清 maxmemory-policy 是否适用于 HashSets 吗?比方说,我有一个名为 REGION 的键,在该键下我有多个键值数据: 1) northamerica 12345 2)
因此,我试图通过Celery上传一个文件,该文件在我的Heroku网站上使用Redis。我正在尝试上传.exe大小的20MB类型文件。 Heroku在他们的爱好中说:dev部分,可以上载的最大内存是2
我正在尝试将一些大型 csv 文件加载到 redis 中。我收到内存 > 'maxmemory' 错误。但是,当我检查我的数据库的使用情况时,它说 used_memory_human:4.63M us
我正在尝试找出在以下情况下“maxmemory”的安全设置是什么: 编写繁重的应用程序 8GB 内存 假设其他进程占用大约 1GB 这意味着redis进程的内存使用量永远不会超过7GB 每个 BGSA
我是一名优秀的程序员,十分优秀!