惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

W
WeLiveSecurity
The GitHub Blog
The GitHub Blog
Engineering at Meta
Engineering at Meta
Microsoft Azure Blog
Microsoft Azure Blog
The Register - Security
The Register - Security
Stack Overflow Blog
Stack Overflow Blog
博客园 - 三生石上(FineUI控件)
T
Threat Research - Cisco Blogs
S
SegmentFault 最新的问题
V2EX - 技术
V2EX - 技术
Hacker News: Ask HN
Hacker News: Ask HN
K
KPMG report finds enterprise disconnect between AI and its ROI | CIO
P
Proofpoint News Feed
J
Java Code Geeks
Microsoft Security Blog
Microsoft Security Blog
M
MIT News - Artificial intelligence
AI
AI
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
P
Proofpoint News Feed
Hacker News - Newest:
Hacker News - Newest: "LLM"
B
Blog
N
News and Events Feed by Topic
N
News | PayPal Newsroom
Google DeepMind News
Google DeepMind News
酷 壳 – CoolShell
酷 壳 – CoolShell
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
WordPress大学
WordPress大学
C
Cybersecurity and Infrastructure Security Agency CISA
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
博客园 - 【当耐特】
U
Unit 42
腾讯CDC
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
The Cloudflare Blog
H
Help Net Security
Recent Announcements
Recent Announcements
P
Privacy & Cybersecurity Law Blog
IT之家
IT之家
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
Security Archives - TechRepublic
Security Archives - TechRepublic
L
LINUX DO - 热门话题
Martin Fowler
Martin Fowler
MongoDB | Blog
MongoDB | Blog
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
H
Heimdal Security Blog
博客园 - 聂微东
S
Securelist
大猫的无限游戏
大猫的无限游戏
Cloudbric
Cloudbric
Cisco Talos Blog
Cisco Talos Blog

博客园 - JAVA是老婆

今天来给智商充值 关于Java8函数式编程你需要了解的几点 【实战Java高并发程序设计 7】让线程之间互相帮助--SynchronousQueue的实现 【实战Java高并发程序设计6】挑战无锁算法:无锁的Vector实现 【实战Java高并发程序设计 5】让普通变量也享受原子操作 【实战Java高并发程序设计 4】数组也能无锁:AtomicIntegerArray 【转】成为Java顶尖程序员 ,看这10本书就够了 【实战Java高并发程序设计 3】带有时间戳的对象引用:AtomicStampedReference 【实战Java高并发程序设计 2】无锁的对象引用:AtomicReference 一图搞定【实战Java高并发程序设计】 【实战Java高并发程序设计 1】Java中的指针:Unsafe类 如何提高Java并行程序性能?? 《实战Java虚拟机》,最简单的JVM入门书,京东活动,满200就减100了,该出手了 看JVM就推荐这本书 【Java】实战Java虚拟机之五“开启JIT编译” 实战Java虚拟机之四:提升性能,禁用System.gc() ? 实战Java虚拟机之二“虚拟机的工作模式” 实战Java虚拟机之一“堆溢出处理” 实战java虚拟机的学习计划图(看懂java虚拟机)
实战Java虚拟机之三“G1的新生代GC”
JAVA是老婆 · 2015-04-14 · via 博客园 - JAVA是老婆

今天开始实战Java虚拟机之三:“G1的新生代GC”。

总计有5个系列

    新生代GC的主要工作是回收eden区和survivor区。一旦eden区被占满,新生代GC就会启动。新生代GC收集前后的堆数据如图5.6所示,其中E表示eden区,S表示survivor区,O表示老年代。可以看到,新生代GC只处理eden和survivor区,回收后,所有的eden区都应该被清空,而survivor区会被收集一部分数据,但是应该至少仍然存在一个survivor区,类比其他的新生代收集器,这一点似乎并没有太大变化。另一个重要的变化是老年代的区域增多,因为部分survivor区或者eden区的对象可能会晋升到老年代。

图5.6  G1的新生代GC

新生代GC发生后,如果打开了PrintGCDetails选项,就可以得到类似以下的GC日志(这里只给出了部分日志,完全的日志及其分析请看《实战Java虚拟机》一书第5.4.6节):

0.336: [GC pause (young), 0.0063051 secs]

….

   [Eden: 235.0M(235.0M)->0.0B(229.0M) Survivors: 5120.0K->11.0M Heap: 239.2M(400.0M)->10.5M(400.0M)]

 [Times: user=0.06 sys=0.00, real=0.01 secs]

    和其他回收器的日志相比,G1的日志内容非常丰富。当然我们最为关心的依然是GC的停顿时间以及回收情况。从日志中可以看到,eden区原本占用235M空间,回收后被清空,survivor区从5M增长到了11M,这是因为部分对象从eden区复制到survivor区,整个堆合计为400M,从回收前的239M下降到10.5M。

实战Java虚拟机之一“堆溢出处理”

实战Java虚拟机之二“虚拟机的工作模式”

节选自

《实战Java虚拟机》一书Q交流群:397196583