有点标题党的意思.
由于应用需要限制进程内存开销, 指定1G 通过-xmx xms java 限定内存后,
top 进程后发现占用2G 多,
同时 通过jstat –gccapacity 计算 发现java 本身占用内存只有1G左右.
修改
SelectChannelConnector connector = new SelectChannelConnector();
connector.setUseDirectBuffers(false);
后 重启应用 内存控制在了1G
原因分析: DirectByteBuffers 是一种OffHeapStore(堆外)存储. 不受GC 影响,
使用DirectBuffers要注意: 他创建和销毁的代价比较大,
如果使用不当,不但不会带来性能提升, 还会造成性能下降以及内存管理的复杂程度