2018年11月
General
- warm up requests;
- zip the big request/response for API;
Java
- Full GC after server startup;
- Thread pool/Connection pool;
- 若一个类实现Object类的 finalize() 方法, 当去实例化这个类当时候,JVM会自动创建一个Finalier实例;
- 这个Finalizer实例会refer 这个带有finalize的实例,并且这个Finalizer类会自动被加到一个全是Finalizer的链表结构中;
- Finalizer 类有个static的ReferenceQueue的队列, 这个队列里面存的是上面提到的Finalizer. 当且仅当没有其它对象引用这个带有finalize()方法的对象, 仅剩一个Finalizer引用它的时候, 它对应的这个Finalizer 就会被GC 线程加入这个queue.
- 还有一个Finalizer 线程, 它会从上面提到的这个block ReferenceQueue中拿Finalizer, 然后去执行它对应实例的finalize() 方法, 然后从队列中去除它;
- Finalizer 线程相对于其它线程, 优先级比较低, 所以有竞争时分配的时间比较少;
- 更多实例 参看: https://plumbr.io/blog/garbage-collection/debugging-to-understand-finalizer