我想知道如何计算一个进程的总CPU使用率。
如果我这样做,我认为相关字段是(取自lindevdoc.org):cat /proc/ _pid_ /stat
那么总花费时间是14到17字段的总和?
要计算特定进程的CPU使用率,您需要执行以下操作:
/proc/uptime
#1
系统正常运行时间(秒)/proc/[PID]/stat
#14
utime
-用户代码中花费的CPU时间,以 时钟滴答数为单位#15
stime
-花费在内核代码中的CPU时间,以 时钟周期为单位#16
cutime
- 等待的儿童 花费在用户代码中 的 CPU时间(以 时钟滴答为单位 )#17
cstime
- 等待儿童的 CPU时间花费在内核代码中(以 时钟滴答为单位 )#22
starttime
-进程开始的时间,以 时钟滴答为单位getconf CLK_TCK
可用于返回时钟滴答数。sysconf(_SC_CLK_TCK)
C函数调用也可以用来返回赫兹值。首先,我们确定该过程花费的总时间:
total_time = utime + stime
我们还必须决定是否要包括子进程中的时间。如果这样做,则将这些值添加到total_time
:
total_time = total_time + cutime + cstime
接下来,我们获取自该过程开始以来经过的总时间(以 秒为单位) :
seconds = uptime - (starttime / Hertz)
最后,我们计算CPU使用率百分比:
cpu_usage = 100 * ((total_time / Hertz) / seconds)
问题内容: 关于如何使用/ proc / stat中的统计信息获取CPU利用率的文章和参考文献很多。但是,它们中的大多数仅使用7个以上的CPU统计信息中的四个(用户,nice,系统和空闲),而忽略了Linux2.6中存在的剩余jiffie CPU计数(iowait,irq,softirq)。 我的问题是:iowait / irq / softirq编号是否也计入前四个编号之一(用户/ nice /
问题内容: 我希望能够启动活动或服务并尽快获取该进程的PID,这将是最好的情况。除了浏览/ proc目录外,我是否还有其他选择,否则会导致活动/服务启动到我在proc中找到所需时间之间的时间量竞争状态发生变化目录并开始观察? 问题答案: 我认为您需要使用ActivityManager:有关过程信息,请参见http://developer.android.com/reference/android/
问题内容: 我遇到了一个问题。有时,当我的JUnit测试正在运行时,请命令webDriver.quit();。不会杀死chromedriver进程,因此下一个测试无法开始。在那种情况下,我想添加一些可以在Linux上手动终止进程的方法,但是我不知道如何获取chromedriver的PID,因此可以执行以下操作:Runtime.getRuntime()。exec(KILL + PID); 问题答案:
问题内容: 我正在努力弄清标题中提到的两个文件。我查了一下是什么。但是,我无法理解如何从他们那里提取有用的信息(或者我只是以错误的方式来对待)。 让我解释一下:页面映射是一个相当新的“功能”伪文件,其中包含分配给当前[pid]的虚拟页面的物理框架信息。也就是说,给定一个从地址x开始的虚拟页面,比如说“ vas”代表虚拟地址开始,我可以使用vas为页面地图文件建立索引,以获取映射的物理页面框架的64
问题内容: 大概有一个库或简单的asm blob,可以获取我正在执行的当前CPU的编号。 问题答案: 使用以确定在其上调用线程运行的CPU。请参阅(系统调用)和(库包装器)。但是,请注意其内容: 仅在调用时保证放置在cpu中的信息是最新的:除非已使用sched_setaffinity(2)修复了CPU关联性,否则内核可能随时更改CPU。(通常不会发生这种情况,因为调度程序会尝试最大程度地减少CPU
我已经从谷歌阅读了这个标准描述:https://developer.android.com/training/sharing/receive 在此之后,我更新了我的AndroidManifest.xml,以包括一个意图过滤器来接受来自其他应用程序的共享(对于各种哑剧类型)。 我可以将我的应用程序视为其他应用程序中的共享选项,当我在其他应用程序中选择一个文件(例如,照片应用程序中的图像文件)并选择与