分布式Java应用与实践

1、反射能提升编码的灵活性,但整个过程比直接编译成字节码调用复杂很多,性能比直接执行慢一些。特别是getMethod相对比较耗性能。
2、C2编译优化中,非逃逸对象是直接在栈上分配的。
3、对于系统而言,为避免运行时频繁调整Heap的大小,通常将-Xms  -Xmx的值设置成一样。
4、新建对象也有可能在旧生代上直接分配,一种是大对象,另一种为大的数组对象且数组中无引用外部对象。
5、Java对象所占用内存主要是堆上分配的,堆所有线程共享,因此堆上分配内存时要加锁,SunJDK为了提升内存分配效率,会为每个新创建的线程在新生代的Eden区分配一块独立的空间叫TLAB,在这个上分配不需要加锁。

猜你喜欢

转载自wangwangxiang.iteye.com/blog/1771135