sky*_*sky 7 java garbage-collection jvm heap-memory
通过GC调优,我成功地获得了实时Java应用程序的性能,并避免了可识别的GC暂停.但是,这可以容纳大约20 GB的堆空间.
硬件成本的降低使得即使是100GB的RAM机也能负担得起.但是,由于GC暂停,仍然使用Java,更高的堆大小(如50 GB)会让您经常陷入噩梦.
我知道有像堆外和分布式堆这样的选项.但是,堆外具有se/derial的缺点,并且手上的分布式堆增加了维护成本.此外,在分布式堆中,您实际上并没有充分利用RAM(比如64 GB),而这些日子正变得越来越普遍.
因此,为了充分利用RAM的潜力,Java应用程序的垂直扩展有哪些好的解决方案?
我正在研究一个名为Banana的原始集合库.香蕉解决了这些问题.它很快就支持LinkedLists,HashMaps和其他可能的数据结构,而不需要保留N个对象的开销.基本上 - 整个存储可以在int []数组(或许多)中.
虽然我还没有正式发布它,但大部分都经过了很好的测试,我已经在144GB内存的服务器上成功运行,保持了快速一致的性能而没有任何GC暂停.
查看此哈希映射基准,以了解如何使用Banana存储数据以及它如何垂直扩展.
https://github.com/omry/banana/wiki/Long-to-fixed-size-object-benchmark
有关更多信息,请参阅维基.
| 归档时间: |
|
| 查看次数: |
1193 次 |
| 最近记录: |