gpt4 book ai didi

c - 按核心跟踪线程执行

转载 作者:行者123 更新时间:2023-12-05 01:21:18 27 4
gpt4 key购买 nike

假设我想绘制一个图表,x 轴为 CPU“点击”(或挂钟时间),y 轴为线程执行。因此,例如,如果我有 4 个核心,我有 4 个 y 轴刻度,x 轴是时间,我想在核心执行该线程时用红色绘制:我如何以编程方式收集信息来做到这一点?我想完全理解这个问题,所以我真的不需要使用 TBB 或任何 IDE、Intel 或其他工具的线程可视化……我只想理解一段简单的代码来做这件事。语言不是问题,真的,但如果是 C,那就更好了。我不需要“画”图,我只需要知道哪个 CPU 正在执行哪个线程以及执行了多长时间。谢谢!

编辑:我刚找到nptl trace tool ,如果有的话,我会看看他们在做什么,并根据我的需要进行调整。

最佳答案

在不涉及内核的情况下执行此操作将很困难

制作图表的最佳方法是让内核在调度进程时记录更改(它不必进行大量更改,因为大多数操作系统都具有软亲和性 并且更喜欢在同一个核心上保留一个线程)。

也就是说,一些操作系统将此类统计信息导出到用户空间。例如 Linux 有 /proc/[pid]/statin that file有一个名为 processor 的字段。

要了解(模糊的)在任何给定时刻您的线程正在发生什么,您可以监视 /proc/self/task/*/stat 中的文件。

关于c - 按核心跟踪线程执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6318234/

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