标签: cpu

如何计算CPU使用率?

在我的桌面上,我有一个小小部件告诉我当前的CPU使用情况.它还显示了我的两个核心的使用情况.

我总是想知道,CPU如何计算其处理能力的使用量?此外,如果CPU挂起来进行一些强烈的计算,它怎么能(或任何处理此活动)检查使用情况,而不会挂断?

algorithm cpu performance cpu-architecture cpu-usage

69
推荐指数
4
解决办法
5万
查看次数

什么是缓存命中和缓存未命中?为什么上下文切换会导致缓存未命中?

从第11章(性能和可扩展性)和部分命名上下文切换的的JCIP书:

当切换新线程时,它所需的数据不太可能在本地处理器高速缓存中,因此上下文切换会导致一连串的高速缓存未命中,因此线程在首次调度时运行速度会慢一些.

  1. 有人可以用一种易于理解的方式解释缓存未命中的概念及其可能的相反(缓存命中)吗?
  2. 为什么上下文切换会导致大量缓存未命中?

language-agnostic cpu concurrency cpu-architecture cpu-cache

67
推荐指数
2
解决办法
7万
查看次数

为什么GPU比CPU更强大

GPU如何比CPU更快?我读过有关GPU如何在破坏密码方面比CPU更快的文章.如果是这样的话那为什么CPU的设计不能像GPU一样速度均匀?

cpu gpu

63
推荐指数
2
解决办法
4万
查看次数

VisualVM和自我时间

我一直在寻找对VisualVM上下文中"自我时间"实际引用的一致而清晰的解释,以及它与"自我时间(cpu)"的区别.'自我时间[%]'也指自我时间或自我时间CPU.

似乎没有太多关于此的文档,或者至少我没有找到它.所以任何想法/意见将不胜感激.

java cpu performance profiling visualvm

61
推荐指数
1
解决办法
2万
查看次数

setInterval CPU是否密集?

我在某处读到了setInterval是CPU密集型的.我创建了一个使用setInterval的脚本并监视CPU使用情况但没有注意到更改.我想知道是否有遗漏的东西.

代码所做的是每隔100毫秒检查URL中的哈希值(#之后的内容)的变化,如果它已经改变,则使用AJAX加载页面.如果它没有改变,没有任何反应.是否会有任何CPU问题.

javascript ajax cpu setinterval

59
推荐指数
3
解决办法
3万
查看次数

哪个Java线程占用了CPU?

假设你的Java程序占用了100%的CPU.它有50个线程.你需要找到哪个线程是有罪的.我还没有找到可以提供帮助的工具.目前我使用以下非常耗时的例行程序:

  1. 运行jstack <pid>,其中pid是Java进程的进程ID.找到它的简单方法是运行JDK中包含的另一个实用程序 - jps.最好将jstack的输出重定向到文件.
  2. 搜索"可运行"线程.跳过那些在套接字上等待的东西(由于某种原因它们仍然标记为可运行).
  3. 重复步骤1和2几次,看看是否可以找到一个模式.

或者,您可以附加到Eclipse中的Java进程并尝试逐个挂起线程,直到您遇到占用CPU的那个.在单CPU机器上,您可能需要首先降低Java进程的优先级才能移动.即便如此,由于超时,Eclipse通常无法附加到正在运行的进程.

我本来期望Sun的visualvm工具可以做到这一点.

有人知道更好的方法吗?

java cpu multithreading

58
推荐指数
5
解决办法
6万
查看次数

如何设置特定pthread的CPU亲和力?

我想指定特定pthread的cpu-affinity.到目前为止,我发现的所有引用都涉及设置进程的cpu-affinity(pid_t)而不是线程(pthread_t).我尝试了一些传递pthread_t的实验,正如预期的那样,它们会失败.我想做一些不可能的事吗?如果没有,你能发一个指针吗?太感谢了.

cpu multithreading processor affinity

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

如何使用C获取Linux中的CPU数量?

是否有一个API来获取Linux中可用的CPU数量?我的意思是,不使用/ proc/cpuinfo或任何其他sys-node文件......

我已经使用sched.h找到了这个实现:

int GetCPUCount()
{
 cpu_set_t cs;
 CPU_ZERO(&cs);
 sched_getaffinity(0, sizeof(cs), &cs);

 int count = 0;
 for (int i = 0; i < 8; i++)
 {
  if (CPU_ISSET(i, &cs))
   count++;
 }
 return count;
}
Run Code Online (Sandbox Code Playgroud)

但是,使用公共库是不是更高级别?

c linux cpu multithreading processor

56
推荐指数
7
解决办法
6万
查看次数

准确计算Linux中以百分比给出的CPU使用率?

这是一个多次被问过的问题,但是我找不到很好的支持答案.

许多人建议使用top命令,但如果你运行top一次(因为你有一个脚本,例如每1秒收集一次Cpu使用),它将始终给出相同的Cpu使用结果(例1,例2).

计算CPU使用率的更准确方法是从中读取值/proc/stat,但大多数答案仅使用前4个字段/proc/stat来计算它(此处为一个示例).

/proc/stat/ 从Linux内核2.6.33开始,每CPU核心有10个字段!

我还使用/ proc/stat问题在Linux中找到了这个准确计算CPU利用率的问题,该问题指出了同样的问题 - 大多数其他问题只考虑了许多领域中的4个问题 - 但这里给出的答案仍然是"我在认为"(不确定),除此之外,它只关注前7个领域(满分为10个/proc/stat/)

这个 perl脚本使用所有字段来计算CPU使用率,经过一些进一步的调查后我再也认为这是不正确的.

采取快速查找到内核代码后在这里,它看起来像,例如,guest_nice并且guest fields总是与一起增加niceuser(所以他们不应该被包含在CPU使用率计算,因为它们包含在niceuser领域已经)

/*
 * Account guest cpu time to a process.
 * @p: the process that the cpu time gets accounted to
 * @cputime: the cpu time spent in virtual machine since the last update …
Run Code Online (Sandbox Code Playgroud)

linux cpu calculator cpu-usage linux-kernel

51
推荐指数
3
解决办法
6万
查看次数

整个核心致力于单一流程

在Linux中是否有任何方法可以将一个CPU内核分配给特定的给定进程,并且不应该在此内核上安排任何其他进程或中断处理程序?

我已经阅读了Linux 绑定进程中使用taskset实用程序对CPU的进程关联,但这并没有解决我的问题,因为它只是试图将给定的进程关注到该核心,但是可能可以在此核心上安排其他进程,这是我想避免的.

我们应该更改内核代码以进行调度吗?

c linux cpu scheduling linux-kernel

49
推荐指数
4
解决办法
4万
查看次数