标签: cpu-usage

减慢线程的最佳方法?使用睡眠()好吗?

我编写了一个C++库来完成一些非常繁重的CPU工作(所有这些都是数学和计算),如果留给它自己的设备,将很容易消耗100%的所有可用CPU资源(它也是多线程的可用逻辑数量)机器上的核心).

因此,我在主计算循环中有一个回调,使用该库的软件应该调用:

while(true)
{
    //do math here
    callback(percent_complete);
}
Run Code Online (Sandbox Code Playgroud)

在回调中,客户端调用Sleep(x)来减慢线程.

最初,客户端代码是一个固定的Sleep(100)调用,但这会导致糟糕的不可靠性能,因为有些机器比其他机器更快地完成数学运算,但所有机器上的睡眠都是相同的.所以现在客户端检查系统时间,如果超过1秒(= =几次迭代),它将休眠半秒钟.

这是减慢线程的可接受方式吗?我应该使用信号量/互斥量而不是Sleep()来最大化性能吗?每1秒处理工作正在睡觉x毫秒,还是有什么不对的,我没有注意到?

我问的原因是,即使taskman显示该进程占用了大约10%的CPU,机器仍然会严重陷入困境.我已经探讨过硬盘和内存争用无济于事,所以现在我想知道我放慢线程的方式是否导致了这个问题.

谢谢!

c++ performance multithreading sleep cpu-usage

8
推荐指数
2
解决办法
4079
查看次数

如何在asp.net中获取CPU使用率

有没有办法在asp.net页面上显示CPU和RAM使用情况统计信息.我试过这段代码,但是我有错误:

Access to the registry key 'Global' is denied.
Run Code Online (Sandbox Code Playgroud)

在这条线上:

ramCounter = new PerformanceCounter("Memory", "Available MBytes");
Run Code Online (Sandbox Code Playgroud)

c# asp.net performance cpu-usage

8
推荐指数
2
解决办法
9193
查看次数

如何在Linux中计算进程及其所有子进程的CPU利用率?

我想在Linux中知道一段时间内进程和所有子进程的CPU利用率.

更具体地说,这是我的用例:

有一个进程等待用户执行程序的请求.为了执行程序,这个过程调用子进程(一次最多限制为5个),并且每个子进程执行其中一个提交的程序(假设用户一次提交了15个程序).因此,如果用户提交了15个程序,那么将运行3批5个子进程.子进程在完成程序执行后立即被终止.

我想知道在执行这15个程序期间父进程及其所有子进程的%CPU利用率.

有没有简单的方法使用top或other命令执行此操作?(或者我应该附加到父进程的任何工具.)

linux cpu-usage

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

Haskell小CPU泄漏

我使用GHC 7.8.3和Yesod 1.4.9遇到了小的CPU泄漏.

当我运行我的网站time并在1分钟后停止它(Ctrl + C)而没有做任何事情(只运行,根本没有请求),它消耗1秒.它占CPU的约1.7%.

$ time mysite
^C

real    1m0.226s
user    0m1.024s
sys     0m0.060s
Run Code Online (Sandbox Code Playgroud)

如果我禁用空闲垃圾收集器,它会下降到0.35秒(占CPU的0.6%).虽然它更好,但它仍然消耗CPU而不做任何事情.

$ time mysite +RTS -I0 # Disable idle GC
^C

real    1m0.519s
user    0m0.352s
sys     0m0.064s

$ time mysite +RTS -I0
^C

real    4m0.676s
user    0m0.888s
sys     0m0.468s

$ time mysite +RTS -I0
^C

real    7m28.282s
user    0m1.452s
sys     0m0.976s
Run Code Online (Sandbox Code Playgroud)

cat无限期等待标准输入上的某些命令相比:

$ time cat
^C

real    1m1.349s
user    0m0.000s
sys     0m0.000s
Run Code Online (Sandbox Code Playgroud)

Haskell中还有其他东西在后台消耗CPU吗?

这是Yesod的漏洞吗?

或者这是我在我的程序中完成的事情?(我只添加了处理函数,我不做并行计算)

编辑2015-05-31 19:25

这是执行-s标志: …

haskell cpu-usage yesod

8
推荐指数
1
解决办法
279
查看次数

Jquery CPU使用率

我正在使用Jquery使图像水平滚动到我的页面.唯一的问题是它使用了大量的cpu使用.在Firefox中的单核笔记本电脑上高达100%.什么可能导致这???

jQuery的

<script>
    jQuery(document).ready(function() {

    $(".speech").animate({backgroundPosition: "-6000px 0px"}, 400000, null);
    });

    </script>
Run Code Online (Sandbox Code Playgroud)

CSS

.speech {
    /*position:fixed;*/
    top:0;
    left:0px;
    height:400px;
    width:100%;
    z-index:-1;
    background:url(/images/speech.png) -300px -500px repeat-x;
    margin-right: auto;
    margin-left: auto;
    position: fixed;
}
Run Code Online (Sandbox Code Playgroud)

HTML

<div class="speech"></div>
Run Code Online (Sandbox Code Playgroud)

javascript jquery cpu-usage jquery-animate

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

循环不消耗太多CPU周期而没有睡眠()?

我正在做一个VoIP程序,它不断检查录音缓冲区中是否有任何内容(FMOD库,只要函数getRecordPosition> 0,然后缓冲区中就有数据).

所以这将是:

while (true) {
    if(getRecordPosition>0) {
     process data....
    }
}
Run Code Online (Sandbox Code Playgroud)

但是,这会导致非常高的CPU使用率.一个版本是使用sleep()但是如果可能的话我宁愿不使用它.例如,win32消息处理及其事件驱动的循环不会消耗很多cpu周期,这是我试图模仿的东西.同时我理解函数getRecordPosition()必须经常调用以查看返回值是否高于0.

我是否坚持做一段时间(真实)循环和睡眠()一段时间以保持低CPU使用率?

我用Google搜索并完成了一些查找,但大多数使用sleep()或某些POSIX与mutex同步返回.(我正在做一个c ++ win32应用程序)

干杯

---编辑:忘记提及我没有访问fmod source corde:/ ---

c++ winapi multithreading synchronization cpu-usage

7
推荐指数
1
解决办法
5759
查看次数

如何获得超过2个内核的CPU使用率?

我尝试将我的程序CPU使用量除以核心.现在我使用PerformanceCounter并在0到1之间更改InstanceName我有来自2个核心的数据.

PerformanceCounter pc0 = new PerformanceCounter("Processor", "% Processor Time", "0");
PerformanceCounter pc1 = new PerformanceCounter("Processor", "% Processor Time", "1");
Run Code Online (Sandbox Code Playgroud)

如何获得第3,第4核等的核心使用?

有人能帮帮我吗?

谢谢

c# performancecounter cpu-usage

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

线程获得100%CPU非常快

我在C#中实现了一个非常基本的线程:

private Thread listenThread;

public void startParser()
{
   this.listenThread = new Thread(new ThreadStart(checkingData));
   this.listenThread.IsBackground = true;
   this.listenThread.Start();
}

private void checkingData()
{
   while (true)
   {

   }
Run Code Online (Sandbox Code Playgroud)

}

然后我立即获得100%的CPU.我想检查传感器数据是否在while(true)循环内读取.为什么会这样?

提前致谢.

.net c# parallel-processing multithreading cpu-usage

7
推荐指数
1
解决办法
7759
查看次数

如何查看/报告Windows Azure CPU和内存使用情况?

在Windows Azure上托管应用程序的所有服务器实例上查看和报告CPU和内存使用百分比统计信息的最简单方法是什么?

是否有必要编写一个监视和记录CPU和内存使用情况的辅助角色?或者,Windows Azure中是否有某些内容可以自动记录您可以使用的内容?如果需要构建自定义内容,那么最好的方法是什么?

memory cpu-usage azure

7
推荐指数
1
解决办法
7379
查看次数

有关日志大小,复杂性和finditme设置的fail2ban性能注意事项

我是fail2ban的新手,并且很难确定我正在考虑设置的不同配置的性能考虑因素.这是在覆盆子pi板上运行,所以性能是一个问题.

我能想到的明显的优化是使用高效的正则表达式,只需要最少数量的jail.我想我的具体问题是:

  1. 资源使用量如何随着查找时间值的增加而增加?我猜测非常小且非常大的值都会以不同的方式影响服务器的RAM与CPU.
  2. 同样,fail2ban监控的日志文件大小和不同日志文件的数量如何影响整体资源使用情况?

举个例子,这个监狱会让某人每天尝试3,600个SSH登录密码,如果他们弄清楚fail2ban配置并调整他们的脚本时间以适应.

[ssh]
enabled  = true
action   = iptables-allports[name=ssh]
filter   = sshd
logpath  = /var/log/auth.log
maxretry = 6
findtime = 120
Run Code Online (Sandbox Code Playgroud)

如果我们将findtime更改为86400(1天)的不同极限,它每天只允许5次尝试,但现在它正在监视日志文件的更大部分.这对资源使用有何影响?

另一个例子,POST洪水攻击的监狱:

[apache-post-flood]
enabled  = true
action   = iptables-allports[name=apache-post-flood]
filter   = apache-post-flood
logpath  = /var/log/apache2/*access.log
maxretry = 10
findtime = 10
Run Code Online (Sandbox Code Playgroud)

在这里,我们有相反的情况,其中findtime计数器每10秒重置一次.它还监控所有*访问日志(我猜,再次,我是新手).这可能意味着它正在监视access.log,other_vhosts_access.log,以及https部分网站的https_access.log.如果这是忙碌的一天怎么样,这些文件都是10-20mb?

希望这有助于解释我的想法.在此先感谢您的帮助.

python performance ram cpu-usage fail2ban

7
推荐指数
1
解决办法
1614
查看次数