gpt4 book ai didi

java - 新 TLAB 中的分配与 TLAB 之外的分配

转载 作者:IT老高 更新时间:2023-10-28 20:42:29 25 4
gpt4 key购买 nike

JDK 中的 Java Mission Control 工具提供有关新 TLAB 中的对象分配和 TLAB 之外的分配的统计信息。 (它在内存/分配下)。这些统计数据有什么意义,对应用程序的性能有什么好处?如果在 TLAB 之外分配了一些对象,我应该担心吗?如果是,我该怎么办?

最佳答案

TLAB 是线程本地分配缓冲区。在 HotSpot 中分配对象的正常方式是在 TLAB 中。 TLAB 分配可以在不与其他线程同步的情况下完成,因为分配缓冲区是线程本地的,只有在获取新的 TLAB 时才需要同步。

因此,理想的情况是尽可能多地在 TLAB 中完成分配。

一些对象将在 TLAB 之外分配,例如大对象。只要 TLAB 之外的分配与新 TLAB 中的分配的百分比较低,就无需担心。

TLAB 在执行期间会针对每个线程单独动态调整大小。因此,如果一个线程分配得非常多,它从堆中获取的新 TLAB 的大小将会增加。如果您愿意,可以尝试设置标志 -XX:MinTLABSize 来设置最小 TLAB 大小,例如-XX:MinTLABSize=4k

我的同事 David Lindholm 提供的答案 :)

关于java - 新 TLAB 中的分配与 TLAB 之外的分配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26351243/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com