《分布式Java应用:基础与实践》样章、代码、纠错、补充

71 Comments

《分布式Java应用:基础与实践》一书中会存在一些错误的地方,以及一些尚未深入讲解的部分,在这篇文章里会提供纠错的信息以及补充的内容的文章的链接,关于书中错误的部分,还请各位海涵和帮助指正。

样章请从此下载:
http://bluedavy.com/book/booksample.pdf

随书的代码请从此处下载:
http://bluedavy.com/book/source.zip

Deflater/Inflater可能造成Native Memory Leak

No Comments

Deflater/Inflater如使用不当,将有可能造成native memory leak,下面是一段示例的代码以及Sun官方网站的Bug记录:
http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6734186
http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4797189

Sun JDK OOM

4 Comments

Java的自动内存管理机制给开发人员带来了很多的便利,在设计、开发时可以完全不用考虑要分配多少内存,要记得回收内存等,但同时也带来了各种各样的问题,其中最典型的问题就是OOM,大部分Java开发人员估计都看到过java.lang.OutOfMemoryError这样的错误信息,在这篇文章中,就来介绍下Sun JDK中有哪几种OOM、OOM示例、造成OOM的原因的查找、解决以及Sun JDK代码中处理OOM的方式。

PDF版本请从此下载:http://blog.bluedavy.com/open/Sun-JDK-OOM.pdf

杭州程序员圆桌交流第三期:GC Tuning Case

15 Comments

在这次的交流中我分享了两个gc tuning的case,内容已纳入到了我blog上GC的PPT中,之后会更新此PPT,先公布视频的下载,感兴趣的同学可下载:

视频part I

视频part II

视频part III

说说MaxTenuringThreshold这个参数

9 Comments

MaxTenuringThreshold这个参数用于控制对象能经历多少次Minor GC才晋升到旧生代,默认值是15,那是不是意味着对象要经历15次minor gc才晋升到旧生代呢,来看下面的一个例子。

《分布式Java应用:基础与实践》序

7 Comments

分布式Java应用需要开发人员掌握较多的知识点,通常分布式Java应用的场景还会对性能、可用性以及可伸缩有较高的要求,而这也就意味着开发人员需要掌握更多的知识点。我刚进淘宝的时候,曾经一直苦恼对于一个这样的分布式Java应用,我到底需要学习些什么。

随着在淘宝工作的不断开展,我的眼前终于慢慢呈现了高性能、高可用以及可伸缩的Java应用所需知识点的全景,这张知识点的全景图现在已经演变成了本书的目录。当看到自己整理出的知识点的全景图时,很惊讶地发现其中有些知识点其实是我之前已经学习过的,但到了真正需要使用的时候有些是完全遗忘了,有些则是在使用时碰到了很多的问题,从这里我看到,当学习到的知识不去经过实践检验时,这些知识就不算真正属于自己。

《分布式Java应用:基础与实践》的封面和目录

27 Comments

封面:

目录请见全文。

Sun JDK V1.6.0 JVM GC

14 Comments

本PPT目前版本仅为0.8,后续仍然会进一步完善,只介绍了在Sun Hotspot V 1.6.0中:
1、内存结构;
2、内存分代,如何控制代大小;
3、可用的GC,每种GC对于参数的不同使用,例如SurvivorRatio、MaxTenuringThreshold等;每种GC不同的内存分配策略和回收策略,但不涉及具体算法是如何实现的;
4、GC是怎么触发的,日志是什么含义;
5、怎么使用上面的GC;
6、GC Tuning,一个案例以及简单介绍了一些常见的GC调优的目标时的瓶颈、可采用的方法等;
7、Sun JDK是如何实现GC的。

code show: 网络访问超时优化

14 Comments

在这篇blog中,我们将来探讨一个优化的案例,这个案例的背景为:在网络通信中,通常会有需求是从A发送了消息给B,然后同步或异步等待B的响应,但不可能无限期的等下去,因此会需要一个超时机制,通常在基于NIO这样的机制中,发送和接收会是异步方式,通常实现时会采用类似如下的方法,代码简单示例如下。

杭州程序员圆桌交流第二期视频

19 Comments

本次交流在4月24日圆满完成,主题为关于JVM的那些事,撒迦@rednaxelafx给大家做了一个长达四小时的精彩分享,涵盖了javac、解释执行、c1、c2编译执行方面的知识点。

由于视频太大,感兴趣的同学请从以下地址下载,自行观看,:),也欢迎看完后在twitter上,或在这里来进行讨论。

Older Entries