如何从QNX中获取CPU负载/ RAM使用?

时间:2015-05-13 08:33:39

标签: performance cpu cpu-usage ram qnx

我目前正在尝试从运行QNX的PowerPC上获取有关CPU负载和RAM使用情况的信息。我们的想法是将这些信息写在一个带有时间戳的文本文件中超过一定的时间,但这一问题就在我将问题作为一个标准值"时出现问题。我的程序将使用C ++,我已经为Windows做过这种程序(通过PDH API)。也许您有this这样的页面,但对于QNX?可能我正在寻找错误的关键词。

你能帮我解决这个问题吗?任何方向都是最受欢迎的,因为我是QNX的新手和这种编程。非常感谢!

1 个答案:

答案 0 :(得分:0)

您将使用/ proc文件系统。

  1. 从命令行,您可以通过以下方式检查进程ID = 1234的进程的内存空间大小:
  2. ls -l / proc / 1234 / as

    “as”代表“地址空间”,此虚拟文件的大小将表示对相关进程使用的内存的良好估计,在此示例中为1236992字节:

    -rw-r - r-- 1 root root 1236992 Aug 21 21:25 as

    要以编程方式获取相同的值,您需要使用/ proc / PID /上的stat()函数作为文件。

    您可以参考文档中的以下页面以获得更详细的说明: http://www.qnx.com/developers/docs/660/index.jsp?topic=%2Fcom.qnx.doc.neutrino.cookbook%2Ftopic%2Fs3_procfs_pid_directories.html

    1. 为了获得进程使用的CPU时间(系统/用户),可以在/ proc / PID / as文件中使用DCMD_PROC_INFO devctly()。您需要引用传递给devctl()的debug_process_t结构的“utime”和“stime”成员。
    2. 您可以在QNX文档的以下页面中找到详细说明和示例代码: http://www.qnx.com/developers/docs/660/index.jsp?topic=%2Fcom.qnx.doc.neutrino.cookbook%2Ftopic%2Fs3_procfs_DCMD_PROC_INFO.html