一、介绍
获取资源使用信息,可以使用 resource 库查看。在 linux 系统中可以正常使用。
注:在 windows 中没有 resource 模块,无法使用改模块,在安装的时候可以正常安装,但是在运行时,在 import resource 的地方会报错:
ModuleNotFoundError: No module named 'resource'
二、查看时间内存等资源使用信息
使用 getrusage() 获得资源使用信息
import resource
re = resource.getrusage(resource.RUSAGE_SELF)
print(re)
函数会返回一个对象,对象中有运行时间,最大的常驻内存大小等信息。
返回值的字段分别描述了某一特定系统资源的使用情况,例如,在用户模式下运行的时间或进程从主内存中换出的次数。有些值取决于内部的时钟周期,例如进程使用的内存量。为了向后兼容,返回值也可以作为一个 16 个元素的元组来访问。
三、返回值字段
返回值中的 ru_utime
和 ru_stime
字段是浮点值,分别代表在用户模式下执行的时间和在系统模式下执行的时间。其余的值是整数。关于这些值的详细信息,请查阅 getrusage(2) man page 。
索引 | 字段 | 资源 |
---|---|---|
|
| 用户模式下的时间(浮点数秒) |
|
| 系统模式下的时间(浮点数秒) |
|
| 最大的常驻内存大小(kb) |
|
| 共享内存大小 |
|
| 未共享的内存大小 |
|
| 未共享的堆栈大小 |
|
| 不需要 I/O 的页面故障数 |
|
| 需要 I/O 的页面故障数 |
|
| swap out 的数量 |
|
| 块输入操作数 |
|
| 块输出操作数 |
|
| 发送消息数 |
|
| 收到消息数 |
|
| 收到信号数 |
|
| 主动上下文切换 |
|
| 被动上下文切换 |
resource.getpagesize()
返回一个系统页面的字节数。(这不需要和硬件页的大小相同)。
下面的 RUSAGE_*
符号被传递给 getrusage() 函数,以指定应该为哪些进程提供信息。
resource.RUSAGE_SELF
传递给 getrusage() 以请求调用进程消耗的资源,这是进程中所有线程使用的资源总和。
resource.RUSAGE_CHILDREN
传递给 getrusage() 以请求被终止和等待的调用进程的子进程所消耗的资源。
resource.RUSAGE_BOTH
传递给 getrusage() 以请求当前进程和子进程所消耗的资源。并非所有系统都能使用。
resource.RUSAGE_THREAD
传递给 getrusage() 以请求当前线程所消耗的资源。 并非所有系统都能使用。