Java Web App CPU 消耗率较高

标签 java linux multithreading processors

我是新来的,我不太擅长 CPU 消耗和多线程。但我想知道为什么我的网络应用程序消耗过多的 CPU 进程?我的程序所做的是在后台更新值,以便用户不必等待数据的处理,而只需要根据请求获取它。更新进程是使用执行器库的计划任务,该库每 5 秒触发 8 个线程来更新我的数据。

现在我想知道为什么我的应用程序消耗了太多的 CPU。是因为代码不好还是因为服务器规范低? (2 个核心,2 个数据库和 1 个与我的网络应用程序一起运行的主要应用程序)

非常感谢您的帮助。

最佳答案

您需要分析您的应用程序以找出实际消耗 CPU 的位置。 Java has some basic profiling methods built in ,或者如果您的环境允许,您可以运行内置的“hprof”编译器:

java -Xrunhprof ...

(实际上,您可能需要设置一些额外的选项:Google“hprof”了解更多详细信息。)

后者原则上更容易,但我提到添加您自己的分析例程的可能性,因为它更灵活,您可以这样做,例如在 Servlet 环境中,运行另一个分析器会比较麻烦。

关于Java Web App CPU 消耗率较高,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10537066/

相关文章:

c++ - 是否有任何 API 或方法可以防止对动态分配的内存进行读访问(和写)?

linux - 如何在二进制执行期间 Hook 所有 linux 系统调用

java - 并发网络爬虫通常将访问过的 URL 存储在并发映射中,还是使用同步来避免两次抓取相同的页面?

触发事件时的 Java 同步

java - 属性 key 文件中的转义 '<' '>'

ios - 如何在后台渲染 CALayer

java多线程模板基准测试

java - 使用 if 和 else 语句设置文本颜色

regex - 使用sed从文件中提取单词

c# - EF上下文和多线程