gpt4 book ai didi

linux - printk 不到一纳秒? - getnstimeofday() 问题

转载 作者:太空狗 更新时间:2023-10-29 12:05:51 24 4
gpt4 key购买 nike

我正在做模块编程。我有时间测量我想对我正在做的一些 printk 的性能影响。我有一个这样的代码设置。

在代码的“declare-y”开头部分:

struct timespec ts_start,ts_end,test_of_time;

在一个方法中:

{
//..other stuff
getnstimeofday(&ts_start);
printk("mkdir being hijacked\n");
printk("pid is %d ", current->pid);
printk("call #: 39 \n");
printk("user_id of process: %d, effuid: %d\n\n", current->uid, current->euid);
getnstimeofday(&ts_end);
test_of_time = timespec_sub(ts_end,ts_start);
printk("%lu", test_of_time.tv_nsec);
return val;
}

我 dmesg 并奇怪地看到值 0。我非常怀疑这需要 0 纳秒才能发生。这里有什么问题?

谢谢

最佳答案

您使用的是什么版本的内核?您的计时器实际上可能没有纳秒分辨率。如果你想测量 printks 花费的时间,你应该在循环中运行它们,以便它们花费有限且可测量的时间。它不会完全准确(例如,由于缓存未命中等原因,第一个 prink 可能比后续的 prink 慢),但这应该会给您一个大概的想法。

如果您想了解为什么会发生这种情况,请尝试分配一个大缓冲区,在一个循环中旋转,将 getnstimeofday 的值写入缓冲区一段时间,然后将缓冲区输出到您可以对其进行分析的地方。您可能会在数据中看到实际的时钟分辨率。

关于linux - printk 不到一纳秒? - getnstimeofday() 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12993309/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com