Linux perf tools (不久前命名为perf_events)有几个内置的通用软件事件。其中最基本的两个是:task-clock和cpu_clock (内部称为PERF_COUNT_SW_CPU_CLOCK和PERF_COUNT_SW_TASK_CLOCK)。但它们的错误之处在于缺乏描述。
user 有简短的描述:
PERF_COUNT_SW_CPU_CLOCK
This reports the CPU clock, a high-resolution per-
CPU timer.
PERF_COUNT_SW_TASK_
我使用的是Ubuntu22.04和Linux5.19.0-38-通用内核。为什么我从软件和更新应用程序v.0.99.22.6获得不同的软件更新,而从GNOME软件应用程序v.41.5获得不同的软件更新;此外,我还不时地使用apt list --upgradable或apt-get upgradable从终端获取可升级的应用程序信息,这与我从GNOME软件获得的信息也不同?
当我使用WaitForSingleObject函数等待一个没有信号的事件时,我发现在某些情况下,调用将在指定的超时时间内返回WAIT_TIMEOUT。只需在超时设置为1000 as的调用上循环,就可以看到调用返回的周期低到990 as (运行在WinXP上)。我使用QueryPerformanceCounter来获得一个系统时钟独立的时间测量,所以我不认为时钟漂移是一个答案。
这种行为不会给我带来任何实际问题,但我想更好地理解它。它看起来可能工作在大约一个定时器滴答的分辨率。Microsoft是否发布有关此功能的精度的进一步详细信息?我应该期待更高的精度在Vista?