标签: cpu-usage

正则表达式的100%CPU使用率取决于输入长度

我试图在Python中提出一个regexp,它必须匹配任何字符,但避免使用三个或更多连续的逗号或分号.换句话说,只允许最多两个连续的逗号或分号.

所以这就是我现在所拥有的:

^(,|;){,2}([^,;]+(,|;){,2})*$
Run Code Online (Sandbox Code Playgroud)

它似乎按预期工作:

>>> r.match('')
<_sre.SRE_Match object at 0x7f23af8407e8>
>>> r.match('foo,')
<_sre.SRE_Match object at 0x7f23af840750>
>>> r.match('foo, a')
<_sre.SRE_Match object at 0x7f23af8407e8>
>>> r.match('foo, ,')
<_sre.SRE_Match object at 0x7f23af840750>
>>> r.match('foo, ,,a')
<_sre.SRE_Match object at 0x7f23af8407e8>
>>> r.match('foo, ,,,')
>>> r.match('foo, ,,,;')
>>> r.match('foo, ,, ;;')
<_sre.SRE_Match object at 0x7f23af840750>
Run Code Online (Sandbox Code Playgroud)

但是当我开始增加输入文本的长度时,正则表达式似乎需要更多时间来给出响应.

>>> r.match('foo, bar, baz,, foo')
<_sre.SRE_Match object at 0x7f23af8407e8>
>>> r.match('foo, bar, baz,, fooooo, baaaaar')
<_sre.SRE_Match object at 0x7f23af840750>
>>> r.match('foo, bar, baz,, fooooo, baaaaar,')
<_sre.SRE_Match object at …
Run Code Online (Sandbox Code Playgroud)

python regex cpu-usage

9
推荐指数
2
解决办法
1067
查看次数

WebView在WebViewCoreThread中使用30%的后台

我有一个带有WebView的应用程序.当Activity暂停(onPause)时,我调用适当的webview.onPause和webview.stopTimers,这些与Activity.onResume方法中的webview.onResume和webview.resumeTimers平衡.

现在,当我在webview中加载www.google.com,然后将应用程序放在后台时,它仍将使用高达30%的CPU!这太过分了.

我执行了方法分析,发现WebViewCoreThread每隔100ms运行一次MessageQueue.nativePollOnce - > WebViewCore.nativeSetScrollOffset,这导致重新绘制webview(在bakground中)(WebViewCore.nativeDrawContent).

这是一般的WebView问题还是我的应用程序中的问题?

cpu android cpu-usage webview

9
推荐指数
1
解决办法
1798
查看次数

用c ++测量CPU时间

如果我有以下代码

clock_t t;
t = clock();
//algorithm
t = clock() - t;
Run Code Online (Sandbox Code Playgroud)

t将等于运行程序的滴答数.这与CPU时间相同吗?有没有其他方法来衡量C++中的CPU时间?

操作系统 - Debian GNU/Linux我对任何有用的东西持开放态度.我想比较两种算法的CPU时间.

c++ time runtime cpu-usage cpu-time

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

如何获得像"top"命令一样的per-cpu统计信息(system,idle,nice,...)?

在linux上,我想知道要调用什么"C"API来获取per-cpu统计信息.

我知道并且可以/proc/loadavg从我的应用程序中读取,但这是系统范围的负载平均值,而不是每个cpu信息.我想分开各个CPU或核心.

作为执行此操作的应用程序的示例,当我运行top并按"1"时,我可以看到4或8个处理器/核心,如下所示:

Cpu0  :  4.5%us,  0.0%sy,  0.0%ni, 95.5%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
Cpu1  : 42.2%us,  6.2%sy,  0.5%ni, 51.2%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
Cpu2  :  3.0%us,  1.5%sy,  0.0%ni, 94.5%id,  0.0%wa,  0.0%hi,  1.0%si,  0.0%st
Cpu3  :  7.0%us,  4.7%sy,  0.0%ni, 88.3%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
Run Code Online (Sandbox Code Playgroud)

我试过,strace top但这导致了一只老鼠的窝.

c linux cpu-usage

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

第二次从Proc-FS文件读取时使用lseek()是否安全

  1. 是否可以安全使用lseek(fd,0)然后再read(fd,buf)使用/proc/stat文件而不是重新打开它以便下次获取此文件的更新内容?
  2. mmap()打开这个文件后的调用真的如何(见下文)?

我遇到的问题是顶级报告CPU使用率太低(软件中断为10%对比100%).strace表示top不会重新打开此文件,而是lseeks开始并再次读取它.不知何故,下次从这个文件读取的内容与我/proc/stat单独运行cat for file 时的内容不匹配.

另外如果我同时/proc/stat在循环中运行top和cat ,那么top会开始报告正确的CPU使用率.

我发现的另一个区别是top mmap()在打开/proc/stat文件后立即使用call ,而cat不是那样做.我不确定这是否也与我的问题有关(因为filesdes=-1这里):

mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f7b37649000
Run Code Online (Sandbox Code Playgroud)

我正在使用带有2.6.32-27服务器映像的Ubuntu 10.04.1桌面版.CPU是Intel Q6600.

linux cpu-usage seek procfs

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

在Android中描述"top"命令

我正在制作一个小型Android应用程序,以显示当前的总CPU使用率,如Windows任务管理器中的选项卡性能.我使用"top -m 1 -n 1 -d 1"来获取CPU使用率,但我并不真正理解"top"的结果.

结果如:

User 5%, system 15%, IOW 0%, IRQ 0%
User 5 + Nice 0 + Sys 14 + Idle 73 + IOW 0 + IRQ 0 + SIRQ 0 = 92
PID     CPU%  S   #THR    VSS    RSS    UID     Name
213     11%   R    1      900K   340K   app_16   top
Run Code Online (Sandbox Code Playgroud)

CPU使用率= ??? 我如何计算总CPU使用率?

android memory-management cpu-usage top-command

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

在emacs23状态栏中显示cpu加载

我以前在.emacs文件中有一个设置,它在我的emacs23状态栏中启用了cpu加载.但我似乎无法再找到命令了.它曾经在emacs.wiki上,但不知怎的,我找不到它.有任何想法吗?

emacs cpu-usage emacs23

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

CPU 使用率和 CPU 使用率之间的区别?

我想知道在谈到 CPU 使用率和 CPU 利用率时,术语是否存在科学差异。我觉得这两个词都被用作同义词。它们都描述了 CPU 时间和 CPU 容量之间的关系。维基百科称之为 CPU 使用率。Microsoft使用 CPU 利用率。但我也发现了一篇文章,其中 Microsoft 使用术语 CPU 使用率。现在VMware定义在物理CPU 上下文中使用CPU Utilization,在逻辑CPU 上下文中使用CPU Usage。此外,stackoverflow 中没有 cpu_utilization 的标签。

有人知道科学区分吗?

terminology cpu-usage

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

Python 多处理进程在一段时间后休眠

我有一个脚本,它在一个目录中运行并搜索给定字符串的给定结尾(即 .xml)的所有文件并替换它们。为了实现这一点,我使用了 python 多处理库。

例如,我使用了 1100 个 .xml 文件,其中包含大约 200MB 的数据。我的 MBP '15 15" 的完整执行时间为 8 分钟。

但是几分钟后,进程的进程将进入睡眠状态,我在“顶部”中看到(这里是 7m 之后......)。

最高输出

PID   COMMAND      %CPU  TIME     #TH    #WQ  #PORT MEM    PURG   CMPR PGRP PPID STATE    BOOSTS         %CPU_ME %CPU_OTHRS
1007  Python       0.0   07:03.51 1      0    7     5196K  0B     0B   998  998  sleeping *0[1]          0.00000 0.00000
1006  Python       99.8  07:29.07 1/1    0    7     4840K  0B     0B   998  998  running  *0[1]          0.00000 0.00000
1005  Python       0.0   02:10.02 1      0    7     4380K  0B     0B   998 …
Run Code Online (Sandbox Code Playgroud)

python multithreading replace cpu-usage multiprocessing

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

如何通过Parallel.ForEach实现最大并行度并利用最大CPU?

有一个C#函数A(arg1, arg2)需要多次调用.为了做到这一点,我正在使用并行编程.

以下面的代码为例:

long totalCalls = 2000000;
int threads = Environment.ProcessorCount;

ParallelOptions options = new ParallelOptions(); 
options.MaxDegreeOfParallelism = threads;

Parallel.ForEach(Enumerable.Range(1, threads), options, range =>
{
    for (int i = 0; i < total / threads; i++)
    {
        // init arg1 and arg2
        var value = A(arg1, agr2);
        // do something with value
    }
});
Run Code Online (Sandbox Code Playgroud)

现在的问题是,随着核心数量的增加,这不会扩大规模; 例如,在8个内核上,它使用80%的CPU,在16个内核上,它使用40-50%的CPU.我想最大限度地使用CPU.

您可能认为A(arg1, arg2)内部包含复杂的计算,但它没有任何IO或网络绑定操作,也没有线程锁定.有哪些其他可能性可以找出代码的哪一部分使其不能以100%并行的方式执行?

我也试过提高并行度,例如

int threads = Environment.ProcessorCount * 2;
// AND
int threads = Environment.ProcessorCount * 4;
// etc.
Run Code Online (Sandbox Code Playgroud)

但它没有任何帮助. …

c# cpu-usage task-parallel-library parallel.foreach

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