[英]What is meaning of timestamp in perf?
我想使用“性能”來測量 function 的實際執行時間。 'perf script' 命令在調用 function 時給出時間戳。
Xorg 1523 [001] 25712.423702: probe:sock_write_iter: (ffffffff95cd8b80)
時間戳字段的格式是XY
。 我如何理解這個價值? 是 XY 秒嗎?
XY
是以seconds.microseconds
為單位的時間戳。
可以在此處查看此值的顯示方式。 您也可以將開關--ns
傳遞給perf script
,以以seconds.nanoseconds
格式顯示時間戳。
要了解此值,您需要了解perf
模塊如何計算時間戳。 您可以將每個事件與不同的時鍾 function 關聯以計算時間戳。 默認情況下, perf
使用sched_clock
function 來計算事件的時間戳, 這里有更多詳細信息。
event->clock = &local_clock;
但是您可以使用-k
開關和perf record
命令將事件與各種時鍾 ID 相關聯。
-k, --clockid
Sets the clock id to use for the various time fields in the
perf_event_type records. See clock_gettime(). In particular
CLOCK_MONOTONIC and CLOCK_MONOTONIC_RAW are supported, some
events might also allow CLOCK_BOOTTIME, CLOCK_REALTIME and
CLOCK_TAI.
將-k
開關添加到perf record
命令將啟用各種時鍾功能,具體取決於您使用的時鍾 ID,如此處所示。
sched_clock
function 應返回自系統啟動以來的納秒數。 特定的架構可能會或可能不會自己提供sched_clock()
的實現。 如果未提供本地實現,系統 jiffy 計數器將用作sched_clock()
。
請注意,以上所有代碼片段均適用於Linux kernel 5.6.7 。
XY 是日期的原始格式。 perf 的時間 function 以納秒為單位運行,需要轉換為人類可讀的格式。 使用本網站將其轉換為日期, http://www.timestamp.fr/ ,或使用 bash
date -d @25712
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.