- mongodb - 在 MongoDB mapreduce 中,如何展平值对象?
- javascript - 对象传播与 Object.assign
- html - 输入类型 ="submit"Vs 按钮标签它们可以互换吗?
- sql - 使用 MongoDB 而不是 MS SQL Server 的优缺点
最近我一直在阅读有关 Java 中不同代的对象分配的内容。大多数情况下,新对象在 Eden(年轻代的一部分)中分配,然后如果满足以下任何条件,它们就会被提升到老年代。
(1) 对象的年龄达到了tenuring阈值
(2) 从 Eden(或)另一个幸存者空间(从)复制对象时,幸存者空间(to)已满
但也有一种特殊情况,对象直接在老年代分配,而不是从年轻代提升。当我们试图创建的对象很大(可能是几 MB 的数量级)时,就会发生这种情况。
有没有办法知道巨大/巨大物体的大小/限制?我知道 G1 垃圾收集器的巨大对象标准。我只想知道 Java 6 之前或之后的大小限制。
感谢您的宝贵时间 :)
最佳答案
HotSpot JVM 可以在年轻代中分配的对象的最大大小几乎与 Eden 的大小一样大(YoungGen 减去两个 Survivor 空间)。
这就是分配的大致样子:
tlab_top
+ size
<= tlab_end
tlab_top
指针增量。 eden_top
+ size
<= eden_end
),因为 Eden 在所有线程之间共享。关于java - 直接分配给老年代的巨大对象的大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24618467/
我刚刚安装了Protractor v2.0.0 .我尝试添加 beforeAll测试并出错 ReferenceError: beforeAll is not defined 查看堆栈跟踪,我看到 ja
我有几个基于 UIKit 的 iOS 应用程序已在 AppStore 上发布,我想更新这些应用程序,并且我考虑切换到 SwiftUI。 我的问题是:对于已经拥有该应用但运行早于 iOS13 的 iOS
我有几个基于 UIKit 的 iOS 应用程序已在 AppStore 上发布,我想更新这些应用程序,并且我考虑切换到 SwiftUI。 我的问题是:对于已经拥有该应用但运行早于 iOS13 的 iOS
我正在构建一个包,我计划在很多应用程序中重复使用它。这个包包含一个“串行端口管理器”:无论我要构建什么应用程序,我总是需要设置通信端口和相关参数。 有一种方法可以在包内拥有一个包含所有所需代码的 JF
我是一名优秀的程序员,十分优秀!