问题标签 [cpu-time]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
windows - 在 Windows 上如何测量 CPU 时间?
我目前正在创建一个程序,用于识别挂起/失控的进程,并使用整个 CPU 内核。然后程序会终止它们,因此可以控制 CPU 使用率。
但是,我遇到了一个问题:当我在 Windows 上执行 'tasklist' 命令时,它会输出以下内容:
所以我知道说“CPU时间”的那一行是程序自启动以来使用的总时间(以秒为单位)的指示。
但是让我们假设系统上有 4 个 CPU 内核。这是否意味着它使用了一个核心的 22 秒,因此在整个 CPU 上总共使用了 5.5 秒?或者这是否意味着该进程在整个 CPU 上用完了 22 秒?
python - 这是 C++ 和 Python 之间 CPU 时间比较的有效方法吗?
我有兴趣比较一些 C++ 与 Python(在 Linux 上运行)编写的代码部分的 CPU 时间。以下方法会在两者之间产生“公平”的比较吗?
Python
使用资源模块:
这允许像这样的时间:
然后我测试如下:
C++
使用ctime
库:
产生0.002
。
关注点:
- 我读过 C++
clock()
测量 CPU 时间,这是我所追求的,但我似乎无法找到它是否包括用户和系统时间。 - C++ 的结果不那么精确。这是为什么?
- 如前所述,比较的总体公平性。
更新
根据 David 在评论中的建议更新了 c++ 代码:
跑步:
所以我想getrusage
可以让我得到更好的分辨率,但我不确定我应该读多少。设置优化标志肯定会产生很大的不同。
database - Monetdb 听诊器的指标 c、m、r、w 和 b 是什么意思?
Monetdb 的听诊器是一个分析工具,并有一个跟踪选项列表。在以下测量结果中,我对一些指标感到困惑。
utime、cuttime、stime 和 cstime 到底是什么?它们似乎是用户和内核空间中的 CPU 时间,但为什么 MAL 指令的“开始”状态有这样的 utime 而“结束”状态没有?而且,它的单位是什么?
rss的单位是什么?
blk.reads blk.writes 应该是以块为单位的 I/O 速度。为什么有些指令的 blk.reads 或 blk.writes 非零,但它们的 rbytes(读取的字节数)和 wbytes(写入的字节数)为零?
此跟踪选项启用此测量:+SatefiITcmrwbsy,在线文档下方对此进行了说明。我不太确定它们的含义。
performance - 在 Julia 中测量经过的 CPU 时间
许多科学计算语言对绝对时间(挂钟)和 CPU 时间(处理器周期)进行了区分。例如,在 Matlab 中,我们有:
在 Mathematica 中,我们有:
当在计算服务器上运行基准测试代码时,这种区别很有用,其中绝对计时结果可能存在很大差异,具体取决于同时运行的其他进程。
Julia 标准库通过 、 和一些其他函数/宏都支持表达式的计时,tic()
这些toc()
函数@time
/宏都基于time_ns()
测量绝对时间的函数。
我的问题:有没有一种简单的方法可以在 Julia 中获取表达式评估的 CPU 时间?
(旁注:进行一些挖掘,似乎 Julia 计时是基于libuvuv_hrtime()
的函数。在我看来,使用同一个库可能会提供一种访问 Julia 中经过的 CPU 时间的方法,但我不是专家。有没有人尝试过使用这样的东西?)uv_getrusage
c# - 如何使用 C# 限制 Windows 进程的 cpu 使用率
我需要编写一个附加到某些 Windows 进程的类,监视和限制它们的 cpu 使用率。更改进程优先级对我一点帮助都没有,所以我真的需要编写一个基本上类似于 BES 或 ThreadMaster 的程序。所以我需要创建一个做这样的事情的类(伪代码):
我希望我清楚我想要完成什么,只是我不知道如何。感谢您的每一次帮助。
node.js - Node.js 中进程的 CPU 时间
有没有办法随时知道 Node.js 进程的 CPU 时间?我需要它来评估我生成的一些 Node.js 进程的 CPU 时间消耗。
谢谢。
c++ - 如何解释多核机器上 boost::timer::cpu_timer 的输出?
我boost::timer::cpu_timer
用来衡量我的应用程序中某些算法的性能。示例输出如下所示:
Algo1 持续时间:6.755457s 墙,12.963683s 用户 + 1.294808s 系统 = 14.258491s CPU (211.1%)
来自 boost cpu_timer 文档:
该程序的输出将如下所示:
换句话说,这个程序运行了 5.713010 秒,用墙上的时钟来衡量,操作系统为它收取了 5.709637 秒的用户 CPU 时间和 0 秒的系统 CPU 时间,这两者的总和是 5.709637,和这代表了挂钟时间的 99.9%。
我获得的值是什么意思(211.1%),是否意味着执行我的算法涉及两个以上的内核?
user CPU time
和的含义是system CPU time
什么?
cpu-time - CLOCK_THREAD_CPUTIME_ID 是否与 pthread_getcpuclockid(pthread_self(),..) 相同?
在使用 Posix clock_gettime() 获取每线程 CPU 时间方面:使用从 pthread_getcpuclockid(pthread_self(),..) 获得的时钟 ID 或使用 CLOCK_THREAD_CPUTIME_ID 有什么区别?
multithreading - 为什么其他线程的 CPU 时间不同
我为一个进程运行了 top -H -p,它给了我几个带有 LWP 的线程。但是当我首先用最小的 PID 对结果进行排序时,我注意到第一个线程中的时间是恒定的,但其他线程的时间正在变化。为什么 TIME+ 不一样?
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
16989 root 20 0 106m 28m 2448 S 0.0 0.2 0:22.31 glusterfs
16990 root 20 0 106m 28m 2448 S 0.0 0.2 0:00.00 glusterfs
16992 root 20 0 106m 28m 2448 S 0.0 0.2 0:00.00 glusterfs
16993 root 20 0 106m 28m 2448 S 0.0 0.2 0:00.00 glusterfs
16997 root 20 0 106m 28m 2448 S 0.0 0.2 0:11.71 glusterfs
17010 root 20 0 106m 28m 2448 S 0.0 0.2 0:21.07 glusterfs
17061 root 20 0 106m 28m 2448 S 0.0 0.2 0:00.00 glusterfs
c - 获取仍在 OS X 上运行的外部进程及其子进程的 cpu 时间
在 linux 上,我可以/proc
按照如何从 C 中通过 PID 在 Linux 中计算进程的 CPU 使用率中所述使用?获取进程及其子进程的 CPU 时间。
我将如何在 OS X 上执行此操作?