0

我正在尝试提取 YourKit 的“线程”视图中显示的数据(在线程状态;主要是当每个线程“等待”或“可运行”时)。我已使用命令行导出实用程序为其支持的所有视图生成所有格式。

导出目录中包含一个文件“Table--Thread-Life-Cycle--Name-History.csv”。这似乎最有可能包含我需要的信息,但我在文件中的列上找不到文档。

作为参考,这些列是:

ID  uptime_ns   thread  thread_name frame   top_method  top_non_filtered_method Thread_Life_Cycle_id    Name

单个线程的数据样本可能是:

94  11879264791 57  Executor task launch worker-0   39131   java.lang.Thread.<init>(ThreadGroup, Runnable, String)  scala.collection.TraversableLike$WithFilter$$anonfun$foreach$1.apply(Object)    52  Keep-Alive-Timer
95  11899612660 57  Executor task launch worker-0   39191   java.lang.Thread.<init>()   scala.collection.TraversableLike$WithFilter$$anonfun$foreach$1.apply(Object)        53  Thread-34
96  11918630377 57  Executor task launch worker-0   39191   java.lang.Thread.<init>()   scala.collection.TraversableLike$WithFilter$$anonfun$foreach$1.apply(Object)    54  Thread-35
97  11942061861 57  Executor task launch worker-0   39191   java.lang.Thread.<init>()   scala.collection.TraversableLike$WithFilter$$anonfun$foreach$1.apply(Object)    55  Thread-36
98  11957367215 57  Executor task launch worker-0   39191   java.lang.Thread.<init>()   scala.collection.TraversableLike$WithFilter$$anonfun$foreach$1.apply(Object)    56  Thread-37
99  11971295215 57  Executor task launch worker-0   39191   java.lang.Thread.<init>()   scala.collection.TraversableLike$WithFilter$$anonfun$foreach$1.apply(Object)    57  Thread-38

导出转储中还有很多其他文件,但这似乎是最有希望的。我应该在别处寻找吗?任何人都可以阐明 YJP 导出的 CSV 中使用的格式吗?

4

2 回答 2

1

YourKit 分析器尚不支持导出线程状态(等待、阻塞、运行等)。这是一个计划好的功能。

Table--Thread-Life-Cycle--Name-History.csv 是“线程生命周期”探针的导出。它仅包含线程名称更改的历史记录。

于 2014-02-10T11:12:51.623 回答
0

如果有人遇到这个问题,我想我最好分享我最后使用的解决方法(至少在 YJP 添加该功能之前)。

https://gist.github.com/anonymous/9970128的 Gist包含一个快速而简单的 OCR 解决方案,用于从 YJP 的屏幕截图中提取线程状态为简单的运行/未运行。常量可能需要一些调整,但它可能对类似情况下的一些可怜的灵魂有帮助!

于 2014-04-04T08:02:32.227 回答