小编sky*_*sky的帖子

Java实时应用程序的垂直扩展

通过GC调优,我成功地获得了实时Java应用程序的性能,并避免了可识别的GC暂停.但是,这可以容纳大约20 GB的堆空间.

硬件成本的降低使得即使是100GB的RAM机也能负担得起.但是,由于GC暂停,仍然使用Java,更高的堆大小(如50 GB)会让您经常陷入噩梦.

我知道有像堆外和分布式堆这样的选项.但是,堆外具有se/derial的缺点,并且手上的分布式堆增加了维护成本.此外,在分布式堆中,您实际上并没有充分利用RAM(比如64 GB),而这些日子正变得越来越普遍.

因此,为了充分利用RAM的潜力,Java应用程序的垂直扩展有哪些好的解决方案?

java garbage-collection jvm heap-memory

7
推荐指数
1
解决办法
1193
查看次数

如何获取StringBuilder中的字符数组以避免数组复制

有什么办法可以让我在StringBuilder中存储字符数组,以避免在执行toString()时创建它的副本。由于它是一个原始数组,因此就像深度复制一样,我希望避免生成此垃圾。

java string

7
推荐指数
3
解决办法
7044
查看次数

ParNew和CMS初始相关

我观察到,当没有最近的ParNew,然后如果CMS-Initial-Mark阶段启动时,CMS-Initial-Mark阶段需要更长的时间来标记旧代中的对象.

好的部分是最让我发现ParNew时代(可能是偶然或JVM在内部这一点)正好出现CMS-初始标记阶段之前,然后标记相同数量的老一代对象时,CMS花费较少的时间.

想知道这一观察背后的推理.

注意:考虑到CMS-Initial-Mark阶段是停止世界,应该尽最大努力减少其持续时间.

garbage-collection jvm

4
推荐指数
1
解决办法
2548
查看次数

标签 统计

garbage-collection ×2

java ×2

jvm ×2

heap-memory ×1

string ×1