问题标签 [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.
java - Java ThreadMXBean getCurrentThreadCpuTime Unix Windows 不同精度
我在 Java 中执行以下代码以打印经过的 CPU 时间(以纳秒和毫秒为单位):
在 Mac 和 Windows 中:
- Mac (macOS Sierra, 10.12.3), Oracle JDK, 1.7.0_79
- Windows (Windows 10), Oracle JDK, 1.7.0_71
在 Mac 上,我得到以下输出(第一列是纳秒,第二列是毫秒):
152955000 152.955
153749000 153.749
156080000 156.08
156161000 156.161
156205000 156.205
156246000 156.246 156301000 156.301 156364000
156.364 156429000 156.429 156471000
156.471 156513000
156.513 156552000
156.552 156603000
156.603
156645000
156.645
156691000
156.691 156731000
156.731
156787000 156.787
...
在 Windows 上,输出为:
109375000 109.375 125000000
125.0
140625000 140.625
156250000 156.25
171875000 171.875
187500000 187.5
203125000 203.125
218750000 218.75
234375000 234.375
250000000 250.0
265625000 265.625
281250000 281.25
296875000 296.875 312500000
312.5
328125000 328.125
343750000 343.75
359375000 359.375
...
您会注意到 Unix 输出是如何完全平滑和连续的,而在 Windows 上,每次迭代都间隔几毫秒(大约 15 毫秒)。
我在 Java、Windows 和 Mac 的几个版本中观察到了这一点。
有人知道为什么会这样吗?有没有更好的方法在 Windows 上以毫秒为单位测量 CPU 时间(即不需要 System.nanoTime())?
谢谢,
迭戈。
c++ - 提升返回 CPU 时间为 0
我正在尝试测量 C++ 程序中函数的 CPU 时间。我正在使用 boost 库执行此操作。然而,当我运行我的程序时,我得到了 0 秒的结果。我是新手,所以如果有人能指出我正确的方向吗?
我怎样才能让这个返回一个我可以实际使用的时间,比如 0.00156 什么的?
代码:内部 main()
linux - 有什么方法可以减少 linux 作业中的 I/O 等待时间?
我正在运行一个多个并行文件处理进程(至少 200 个进程),其中每个进程正在读取不同大小(0-50mb)的日志以捕获日志的实时数据。我在 16 个内核和 8 GB 上运行我的作业内存 Linux 机器。
但是文件的 cpu 和经过的时间过程之间存在巨大的滞后。
您能否通过一些示例来解释为什么 b/w cpu 和经过的时间如此滞后?还有什么方法可以减少这些进程的等待时间。
java - Java Executors 中的空闲线程是否占用 CPU 执行时间?
当我在应用程序中有此代码时:
但我从不使用这个线程池。空闲线程会消耗 CPU 时间吗?如果是这样 - 为什么?
python - 在脚本中使用 IPython 的 %%time 魔法来测量 CPU 时间
我经常使用 Jupyter/IPython,并且习惯于%%time
在每个单元格前面包含魔术命令,以了解所花费的 CPU 量和挂钟时间。
有没有一种简单的方法可以从脚本中获得相同的测量值?
更具体地说,我想要这样的东西:
php - 确定 php 脚本使用了多少资源(cpu 百分比和内存)
我目前正在使用由tideways.ioxhprof
分叉的库来分析执行。从, 我可以得到, ,和. 我正在尝试对 symfony 控制台进行基准测试 - 所以我添加了它和它的.myscript.php
xhprof
walltime
cputime
memoryusage
peakmemoryusage
TIDEWAYS_ENABLE()
ConsoleCommandEvent
TIDEWAYS_DISABLE
ConsoleTerminateEvent
问题:
- 我如何确定是否
myscript.php
消耗了多少百分比的cpu?我可以像在 serverfault 上cpuusage = cputime / realtime
所说的那样计算百分比吗? - 给定一个
memoryusage (mu)
和peakmemoryusage (pmu)
来自xhprof
探查器,我如何转换或计算它的ram
使用量?(top
结果显示远高于memoryusage
但不知何故接近peakmemoryusage
价值,所以我可以说ram
使用是价值peakmemoryusage
吗?
笔记:
- 这与我的 CPU 和内存使用率不同,因为我想要的不是
system load
. ps可能有多个scripts.php
同时运行。
java - 如何在 Android 中测量线程特定时间?
在标准 JVM(例如 1.8 版)中,我们可以像这样访问当前线程的时间:
在Android(即Dalvik VM)中获取当前线程时间的等效方法是什么。
java - java中的变量声明
我如何在java中使用CPU时间作为变量,我需要定义一个动态值随时间推移而增加的变量示例
诠释 CPU 时间;首先:cpuTime = 0,因为但在 20 秒后 cpuTime = 20 和 60 秒后 cpuTime = 60 等等?在哪里,我需要随着时间的推移检查一些情况。例如如果 cpuTime > p-10 做 {}
此致
fork - 在不阻塞父进程的情况下测量子进程的时间
我想测量子进程的执行时间。我可以使用时间函数 https://linux.die.net/man/3/times。但是它需要使用wait()来阻塞父进程。另一方面,我需要保持父进程并行运行以存储子进程生成的数据。孩子退出后,我想知道执行子进程花费了多少 CPU 时间。如下所示:
java - Java中获取方法时间的可靠跨平台方式
这个问题与基准无关。
我有一个 java 线程周期,它应该在接近一个时间段 T 时运行:
当然,根据计划优先选择,Thread.sleep(sleepTime)
可能略大于sleepTime
. 但是,平均而言,这种方法提供了周期 T 的接近平均近似值。
问题
方法:
提供挂钟参考时间。如果机器的时钟向前或向后改变,则此实现无法提供周期 T 的近似值。例如:
Thread.sleep(30000)
如果有人在“运行”时提前三分钟手动更改时钟,则会打印类似 204283 的内容。
由于系统时钟总是在变化(时间服务器同步、系统负载、用户设置等),因此使用System.currentTimeMillis()
不足以满足我的需求。
失败的解决方案
为了提供更强大的时间参考,我尝试了以下 getTime 方法的实现:
问题getCurrentThreadCpuTime
在于,产生的时间量是线程消耗的 CPU 时间,而不是那一刻剩下的时间。不考虑线程休眠或阻塞的剩余时间。例如:
getCurrentThreadCpuTime
getTime 的实现令人惊讶地打印“0”(零) 。
我想要的是
我想我需要的是这样的:
问题是我没有找到一种实现跨平台方式getAmountOfCPUCyclesSinceTheProgramStarted()
的java方法。getCPUFrequency()
最后,我的问题是:如何以可靠的跨平台方式获取java中方法的花费时间?