JVMTI的对象标记对GC的影响

本文主要是想分析下为什么Plumbr代理在特定的场景下会对GC的暂停时间产生影响,以及影响究竟有多大。在排查这个故障的过程中,我们还发现,在GC暂停的时候,JVMTI(JVM Tool Interface)的打标记操作存在一些有趣的现象。

Published: 06 Feb 2015

Java 8:当重载遇上lambda

要设计出好的API绝非易事。真的是很不容易。如果你希望用户能给你的API点个赞的话,设计的时候需要考虑得非常周全。你必须得在以下几点中找到一个平衡点:

Published: 05 Feb 2015

提升Java的锁性能

几个月前我们介绍了如何通过Plumbr来进行线程锁检测,随后便收到了很多类似的问题,“Hi,文章写得不错,现在我终于知道是什么引发的性能问题了,但是现在我该怎么做?”

Published: 23 Jan 2015

Java中不同的并发实现的性能比较

img

Published: 22 Jan 2015

Java线程的5个使用技巧

image

Published: 21 Jan 2015

在Servlet代码中输出HTML响应

如果你的企业级WEB应用中只是需要对大量的请求URI进行处理的话,那么在Servlet代码里面直接生成HTML响应貌似要更简单一些,而不必使用一套完整成熟的模板库。在下面的例子中,我在Servlet代码里用了一个非常简单的Java DSL来生成HTML的输出。代码如下:

Published: 08 Jan 2015

Java 9中新的货币API

JSR 354定义了一套新的Java货币API,计划会在Java 9中正式引入。本文中我们将来看一下它的参考实现:JavaMoney的当前进展。

Published: 06 Jan 2015

JVM:32G以上的堆会发生什么

这篇短文主要是想告诉你如果给Oracle JVM配置超过32G的堆会发生什么事情。默认情况下,堆大小在32G以下的话JVM中的引用会占用4个字节。这是JVM在启动的时候就已经决定了的。如果你去掉了-XX:-UseCompressedOops选项的话,当然也可以在较小的堆上使用8字节的引用(但在生产系统中这么做是毫无意义的!)。

Published: 05 Jan 2015

Java不同压缩算法的性能比较

本文将会对常用的几个压缩算法的性能作一下比较。结果表明,某些算法在极端苛刻的CPU限制下仍能正常工作。

Published: 04 Jan 2015

Java堆外内存的使用

最近经常听到有人问Java中使用堆外(off heap)内存的好处与用途何在。我想其他面临几样选择的人应该也会对这个答案感兴趣吧。

Published: 26 Dec 2014