gpt4 book ai didi

java - 垃圾回收发生时无法控制,如何保证java应用程序的性能?

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:15:24 26 4
gpt4 key购买 nike

我正在阅读一些资料,发现当 GC 以“停止和复制”策略或任何其他策略发生时,程序执行会被正确地停止以进行有效的 GC。这就引出了一个问题,当GC发生时GC停止程序执行,当垃圾收集发生时无法控制,如何保证java应用程序的性能?

假设我们有几个线程在运行,其中一个正在处理一个对性能非常关键的 Activity ,这需要毫秒级的精度,那一刻我可以依赖我的 Java 应用程序,如果在这样的关键时间调用 GC 会发生什么, 它不会影响性能吗,有什么方法可以确保在代码中的特定时间不调用 GC?

最佳答案

你有很多选择

  • 使用较小的新生代大小。这可以在几毫秒内收集完毕,有时不到 1 毫秒。
  • 使用较大的 Eden 空间并减少产生的垃圾。如果平均创建速度低于 300 KB/s,并且拥有 24 GB 的伊甸园空间,则即使是次要收集也可以运行一整天。

虽然并非所有库都设计为低 GC,但只要不经常调用它们,您仍然可以使用它们。对于关键路径库,您希望它们是低垃圾。这不仅减少了暂停时间,而且有时将暂停之间的代码速度提高了 2-5 倍。

关于java - 垃圾回收发生时无法控制,如何保证java应用程序的性能?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36507486/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com