性能主题
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是什么?