标签: cpu-usage

什么算作CPU密集型任务(例如排序,搜索等?)

你认为什么是CPU密集型任务.例如......算法/代码(不是像视频编辑那样的用例等).原因似乎是不使用NodeJS的主要原因我真正喜欢的主要是CPU密集型任务.重要的是什么呢?例如,它是排序,搜索,横向图形,矩阵乘法吗?

javascript cpu-usage node.js

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

java cpu使用情况监控

有没有办法使用纯Java监控CPU使用率?

java cpu-usage

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

获取Linux进程资源使用情况(cpu,磁盘,网络)

我想使用/ proc每秒查找特定进程的资源使用情况.资源包括cputime,磁盘使用情况和网络使用情况.我查看/ proc/pid/stat,但我不确定我是否收到了所需的详细信息.我想要所有3个资源使用,我想每秒监视它们.

linux resources cpu-usage procfs

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

SocketInputStream.socketRead0()中CPU使用率高的原因

在剖析本土网络应用程序时,我遇到了非常奇怪的(至少对我来说)观察.

几乎所有的时间都花在socketRead0()SocketInputStream课堂的方法上.这并不奇怪,因为我的应用程序在每个请求上都使用远程服务进行联网.奇怪的是,这种方法不仅挂钟时间使用率高,而且CPU时钟时间也很高.我无法理解为什么CPU时间很长,因为如果我的应用程序等待远程服务回复(实际上并不是那么快),那么应用程序本身就没有什么可做的了.所以CPU时间应该很低.

更多观察:

  • 采样模式下的VisualVM显示该方法SocketInputStream.socketRead0()占用时间高达95%(挂钟时间 CPU时间);
  • mpstat (我们使用Linux作为操作系统)显示约90%的用户时间和约1-3%的系统时间(其余为空闲时间);
  • 应用程序部署在专用服务器上;
  • 远程服务也是HTTP Web应用程序.平均响应时间约为100毫秒.平均响应大小约为2Kb.
  • 我的应用程序使用spring RestTemplate来与远程服务进行交互,而不是SocketInputStream直接进行.

现在我只有一个想法 - 也许这是在JVM中调用本机方法的开销(SocketInputStream.socketRead0()原生)?

你怎么看?还有其他原因吗?

java linux performance jvm cpu-usage

17
推荐指数
1
解决办法
3655
查看次数

IntelliJ IDEA 12.1不时吃掉100%的CPU

我刚刚将我的IntelliJ IDEA更新到最新的12.1版本,我发现我的笔记本CPU使用率不时变为100%,监控进度管理器我发现IDEA定期分叉一个新的Java进程并运行几十秒并关闭.在此期间,CPU使用率接近100%:屏幕截图

intellij-idea cpu-usage

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

Flash/Actionscript CPU探查器

您是否找到了这样的工具并成功使用了它?

flash profiling actionscript cpu-usage

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

列出所有进程及其当前内存和CPU消耗?

如何获取C#中的所有进程列表,然后获取每个进程当前内存和CPU消耗?

示例代码非常感谢.

.net c# memory-management performancecounter cpu-usage

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

使用RDTSC获取cpu周期 - 为什么RDTSC的值总是增加?

我想在特定点获得CPU周期.我在这一点上使用这个功能:

static __inline__ unsigned long long rdtsc(void)
{
    unsigned long long int x;
    __asm__ volatile (".byte 0x0f, 0x31" : "=A" (x));
    return x;
}
Run Code Online (Sandbox Code Playgroud)

问题是它总是返回一个增加的数字(在每次运行中).就好像它指的是绝对时间.

我错误地使用了这些功能吗?

linux x86 assembly cpu-usage

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

高CPU使用率的常见原因是什么?

背景:

在我用C++编写的应用程序中,我创建了3个线程:

  • AnalysisThread(或Producer):它读取输入文件,解析它并生成模式,并将它们排入std::queue1.
  • PatternIdRequestThread(或Consumer):它从队列中取消deque模式,并通过客户端(用C++编写)将它们一个接一个地发送到数据库,该客户端返回模式uid,然后将其分配给相应的模式.
  • ResultPersistenceThread:它做了更多的事情,与数据库对话,并且就CPU使用情况而言,它可以正常工作.

前两个线程占CPU使用率的60-80%,平均每个占35%.

题:

我不明白为什么有些线程占用高CPU.

我将其分析如下:如果操作系统做出决策,如上下文切换,中断调度,哪个线程应该被授予对系统资源的访问权限,比如CPU时间,那么进程中的某些线程是如何发生的呢?比其他人使用更多的CPU?看起来有些线程在枪口强行从操作系统获取CPU ,或者操作系统对某些线程有一个真正的软点,所以它从一开始就偏向于它们,为它们提供了所有的资源.为什么它不能公正,并平等地给予他们所有人?

我知道这很天真.但是,如果我按照这一思路思考,我会更加困惑:操作系统根据线程要完成的工作量来访问线程的CPU,但操作系统执行之前如何计算或预测工作量彻底?

我想知道高CPU使用率的原因是什么?我们如何识别它们?是否可以通过查看代码来识别它们?有什么工具?

我正在使用Visual Studio 2010.

我也怀疑std::queue.我知道标准容器不是线程安全的.但是如果只有一个线程将项目排队到队列中,那么如果只有一个线程从中取消项目是否安全呢?我想它就像一个管道,一方面你插入数据,另一方面,你删除数据,那么为什么它是不安全的,如果它同时完成?但是,这不是本主题中的真正问题,但是,您可以在答案中添加注释,解决此问题.

更新:

在我意识到我的消费者线程正在使用busy-spin之后,我已经使用Sleep修复了3秒钟.这个修复是暂时的,很快我就会使用Event.但即使使用Sleep,CPU的使用率也降至30-40%,有时它会达到50%,从可用性的角度来看似乎并不理想,因为系统不响应其他应用程序用户当前正在使用的.

有什么方法我仍然可以改善高CPU使用率?如前所述,生产者线程(现在使用大多数CPU周期)读取文件,解析其中的数据包(某些格式),并从中生成模式.如果我使用睡眠,那么CPU使用率会降低,但这是个好主意吗?解决它的常用方法有哪些?

c++ cpu performance multithreading cpu-usage

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

为什么Java没有有效地利用我所有的CPU内核

我在具有四核CPU的机器上运行Ubuntu.我编写了一些测试Java代码,它产生了一定数量的进程,这些进程只是在运行时为一定数量的迭代增加一个volatile变量.

我希望运行时间不会显着增加,而线程数小于或等于内核数量,即4.实际上,这些是我从UNIX time命令使用"实时"的时间:

1个线程:1.005s

2个主题:1.018s

3个主题:1.528s

4个主题:1.982s

5个主题:2.479s

6个主题:2.934s

7个主题:3.356s

8个主题:3.793s

这表明添加一个额外的线程不会像预期的那样增加时间,但随后时间增加3和4个线程.

起初我以为这可能是因为操作系统阻止了JVM使用所有内核,但我跑了top,它清楚地表明,有3个线程,3个内核运行在~100%,有4个线程,4个内核是超出.

我的问题是:为什么在3/4 CPU上运行的代码与在1/2运行时的速度大致相同?因为它在所有核心并行运行.

这是我的主要参考方法:

class Example implements Runnable {

    // using this so the compiler does not optimise the computation away
    volatile int temp;

    void delay(int arg) {
        for (int i = 0; i < arg; i++) {
            for (int j = 0; j < 1000000; j++) {
                this.temp += i + j;
            }
        }
    }

    int arg;
    int result;

    Example(int …
Run Code Online (Sandbox Code Playgroud)

java concurrency multithreading multicore cpu-usage

16
推荐指数
2
解决办法
7624
查看次数