CPU times与Wall time

本文详细解释了进程时间(CPU时间)与墙上时间的概念及计算方法,并探讨了它们之间的关系,帮助理解程序性能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

CPU times

进程时间也称CPU时间,用来度量进程使用的中央处理器资源。
进程时间以时钟计算,分为用户时间(user),系统时间(sys),总时间(total):用户时间和系统时间是特定进程使用的CPU时间,总时间等于用户时间与系统时间之和。

  • user:进程执行用户态代码耗费的CPU时间
    进程执行用户态代码耗费的CPU时间。仅统计该进程执行时实际使用的CPU时间,而不计入其他进程使用的时间片和本进程阻塞的时间

  • sys:进程在内核态运行所耗费的CPU时间
    该进程在内核态运行所耗费的CPU时间,即内核执行系统调用所使用的CPU时间

  • total:进程(包括线程和子进程)所使用的实际CPU时间
    CPU执行用户进程操作和内核系统调用所耗时间的总和(total = user + sys),即该进程(包括线程和子进程)所使用的实际CPU时间。若程序循环遍历数组,则会增加用户时间;若程序执行exec或fork等系统调用,则会增加系统时间

Wall time

  • wall time:进程起止所耗墙上时钟时间,也叫real time
    进程从开始执行到完成,所经历的墙上时钟时间(实际时间),包括其他进程使用的时间片(time slice)和本进程耗费在阻塞(如等待I/O操作完成)上的时间。

在多核处理器计算机上,若进程含有多个线程或通过fork调用创建子进程,则墙上时钟时间可能小于CPU总时间,因为不同线程或进程可并行执行,但其时间会计入主进程的CPU总时间;若程序在某段时间处于等待状态而并未执行,则墙上时钟时间可能大于CPU总时间。

  • wall time < total,进程为计算密集型(CPU bound),我们可以利用多核处理器的并行执行优势

  • wall time ≈ total,进程为计算密集型,未并行执行

  • wall time > total,进程为I/O密集型 (I/O bound),多核并行执行优势并不明显

参考文章

http://blog.csdn.net/filyouzicha/article/details/52447887

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值