- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我试图了解 Java 中的 GC 是如何工作的,我想知道在以下情况下会发生什么:
Eden:几乎已满,Surivor1:利用率极低,Surivor2:空,Tenured:几乎已满。
我们尝试分配一些对象,但该对象不适合 Eden 中的可用空间。
GC 开始:尝试将 Eden+Survivor1 重新打包到 Survivor2 中。大多数对象已删除,但空间仍然不足。溢出试图获得终身教职。
Tenured 也没有足够的空间来保留所有溢出。
此时,在删除死对象后,Eden 可能已经拥有足够的空间。 Java GC 可以利用这个空闲空间吗?
在这个问题中我没有考虑 G1 垃圾收集器。
最佳答案
在您描述的情况下,典型的 GC 算法(因为您没有询问特定的算法)会导致主要 GC 尝试回收旧代(终身空间)中的空间,以允许从旧代中提升对象伊甸园/幸存者空间。
如果这无法回收足够的空间来支持年轻代 GC 的完成,您将得到 OutOfMemoryException。
关于java - Tenured 已满,Eden 为空 : can objects be moved to Eden?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51964794/
我编写了一个函数来包含两个 DateTime 之间的小时列表。 但最后它看起来并不是很容易阅读,这让我想对它进行单元测试,即使我正在从事的项目根本没有进行单元测试。 所以我的问题是,是否有一种更易读或
我一定是漏掉了什么,因为我还没有在网上找到这个非常基本的问题的答案。我正在使用能够容纳三个 int 的缓冲 channel 值。 然后我使用三个 goroutine 来填充它,一旦缓冲 channel
我发现如果一个矩阵(几乎)满了,那么将它存储在稀疏中会导致(更多)更多的计算时间。 虽然以稀疏形式存储完整矩阵是微不足道的,但我只想知道这一事实背后的原因。 我的推测是稀疏索引读取将是计算时间的主要贡
root@root:~# sudo du -ch --max-depth=1 --exclude=/home/ / du: cannot access ‘/sys/kernel/slab/L2TP/I
基本上我想创建一个 UIProgressView 在 3 秒内从 0.0(空)到 1.0(满)。有人能指出我在 swift 中使用 NSTimer 与 UIProgressView 的正确方向吗? 最
我是一名优秀的程序员,十分优秀!