gpt4 book ai didi

Java CompilerThread 占用更多 CPU 使用率

转载 作者:行者123 更新时间:2023-12-02 08:48:13 24 4
gpt4 key购买 nike

我们有一个带有 java IO 操作的服务器应用程序。运行应用程序时,我们观察到 CompilerThread0 和 CompilerThread1 的 CPU 使用率分别为 45% 和 41%。应用程序此时正在为客户端提供 IO 服务,例如连接、接收和发送。据我探索与此相关的内容,我发现编译器线程是为了 JIT 和提高性能。

我的问题是,首先,为什么编译器线程占用大量 CPU 以及如何最大限度地减少这种情况,以便我们可以将 CPU 分配给其他线程。

提前致谢!

最佳答案

My question is first, why it is taking much CPU for the compiler threads

在正常情况下,JIT 编译器应该在应用程序运行一段时间后启动,以(逐步)编译频繁调用的类/方法。一旦所有需要编译的代码都已编译完毕,编译 Activity 就会停止。

如果编译 Activity 没有停止,那么就会发生一些奇怪的事情。它可能是以下之一:

  • 您的应用程序大量使用动态代理,并且您不断生成新的代理类。
  • 您的应用程序正在动态加载(和卸载)大量类。
  • 您遇到了某种 JVM 错误。 (但我无法找到与这些症状相匹配的 Bug 数据库条目。因此我称其为“不太可能”。)

and how to minimize this so that we can give CPU to other threads.

有一些潜在的 JVM 选项可能会有所帮助,但我认为您最好找出导致此问题的原因。

关于Java CompilerThread 占用更多 CPU 使用率,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18289521/

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