性能主题

Java性能优化要点之四: Unsafe

首页

  Unsafe是一个没有公开的API,它允许我们能够针对内存地址进行操作,进行数组操作和volatile / atomic原子性等操作,如下代码:

public static Unsafe getUnsafe() {

  Class cc = sun.reflect.Reflection.getCallerClass(2);

  if (cc.getClassLoader() != null)

    throw new SecurityException("Unsafe");

  return theUnsafe;

}

Unsafe可以很快地做很多事情,因为消除了范围检查,并允许直接通过内存地址直接访问。问题是易于对JVM内存产生段错误,也是一个非公开的API。

kryo和Twitter的Storm都是基于此库。它也即将成为 public API in Java 9.

更多参考:Unsafe是什么?

下页