Windbg ProcessUptime 不等于内核时间 + 用户时间
Windbg ProcessUptime is not equal to Kernel Time + User Time
我正在使用 Windbg 分析我的一个进程的小型转储。我使用 .time 命令查看处理时间,得到如下结果。我期待(进程正常运行时间 = 内核时间 + 用户时间),但事实并非如此。有没有人知道为什么或者我的解释是错误的?
0:035> .time
Debug session time: Tue May 5 14:30:24.000 2020 (UTC - 7:00)
System Uptime: not available
Process Uptime: 3 days 5:29:22.000
Kernel time: 0 days 9:06:26.000
User time: 11 days 18:50:47.000
内核和用户时间与 CPU/Process Explorer under the Performance tab, and are likely related to the times returned by GetProcessTimes 中显示的内核和用户时间匹配。它们加起来就是 Process Explorer 中显示的总时间,或者同一进程在任务管理器中显示的 CPU 时间。
这个"CPU time"是跨越所有CPU秒的总时间,并且不包括时间进程花费在睡眠、等待或其他闲置上。因此,它可以是 (a) 小于进程 "uptime",这只是开始时间和结束时间之间的时间差,在大多数空闲进程的情况下,或者 (b) 大于进程正常运行时间在多个 CPU 中大量使用的情况。
我正在使用 Windbg 分析我的一个进程的小型转储。我使用 .time 命令查看处理时间,得到如下结果。我期待(进程正常运行时间 = 内核时间 + 用户时间),但事实并非如此。有没有人知道为什么或者我的解释是错误的?
0:035> .time
Debug session time: Tue May 5 14:30:24.000 2020 (UTC - 7:00)
System Uptime: not available
Process Uptime: 3 days 5:29:22.000
Kernel time: 0 days 9:06:26.000
User time: 11 days 18:50:47.000
内核和用户时间与 CPU/Process Explorer under the Performance tab, and are likely related to the times returned by GetProcessTimes 中显示的内核和用户时间匹配。它们加起来就是 Process Explorer 中显示的总时间,或者同一进程在任务管理器中显示的 CPU 时间。
这个"CPU time"是跨越所有CPU秒的总时间,并且不包括时间进程花费在睡眠、等待或其他闲置上。因此,它可以是 (a) 小于进程 "uptime",这只是开始时间和结束时间之间的时间差,在大多数空闲进程的情况下,或者 (b) 大于进程正常运行时间在多个 CPU 中大量使用的情况。