簡體   English   中英

perf中時間戳的含義是什么?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM