首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Java + JDBC的CPU使用

问Java + JDBC的CPU使用
EN

Stack Overflow用户
提问于 2011-04-11 19:29:51
回答 1查看 1.4K关注 0票数 3

在加载下测试webapp时,我在Linux下获得了以下top摘录:

代码语言:javascript
复制
 PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND
3964 nobody    20   0 4965m 622m 6048 S  8.5 11.0   6:02.49 java 
1985 mysql     20   0  294m 125m 3804 S  2.1  2.2   0:05.39 /usr/sbin/mysqld

我需要对java的%CPU列做一个解释。据我所知,在web请求期间,java的一个线程正在执行一些纯Java逻辑,占用了一些CPU时间(假设它是5ms)。然后它通过JDBC连接到数据库,发送一些查询并等待响应,比如10‘s,这些10’s显然被算作/usr/sbin/mysqld CPU使用量。然后java线程恢复并完成它的操作,再消耗20‘s,相当于5+10+20=30ms的总执行时间。

而新手的问题是:您不认为这些与db相关的10 is被计算了两次:一次是作为等待db处理查询的java线程,另一次是作为数据库CPU使用本身?我有什么不明白的?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-04-11 19:37:59

当进程简单地等待套接字时,它通常不会使用大量的CPU。基本上,内核知道它处于等待状态,不会安排它运行--除了信号处理之类的小事情,例如定期运行垃圾收集器。

(好吧,如果有很多垃圾要收集,那“小东西”可能就不会那么少了。)

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5626468

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档