3

背景:我们构建了一个产品,通过注释和自定义类加载器向 Java 添加各种功能(事务、基于共享内存的对象持久性、索引和查询、基于集群的高可用性和复制)。这些功能的大部分实现都在 C++ 库中,这些库通过我们的类加载器插入的本机调用来访问。我们的本地人可以被描述为使用 CPU,通过互斥锁或 condvar 获取阻塞,网络 I/O 阻塞,或者这三者的某种组合。本机入口点本身不知道它们是否会阻塞。

问题:JProfiler 将在我们的本机中花费的时间报告为 CPU 时间,并将本机中的任何线程显示为正在运行。有没有办法让 JProfiler 知道发生的运行和阻塞的实际组合?

4

1 回答 1

1

为应从“可运行”线程状态中排除的所有本机方法添加方法触发器。在触发器配置的“Actions”步骤中,添加“Override thread status for current method”触发器动作。您可以将线程状态设置为“Waiting”、“Blocking”或“Net I/O”。

于 2013-06-01T09:48:31.880 回答