带有时间戳的StacktraceElement

3

StackTrace可以提供源文件中的类、方法和行号。

那么有没有办法获取方法执行的时间戳呢?


添加时间戳会使每个方法调用变得10倍或更慢。 你为什么需要知道这个? - Peter Lawrey
这将为我们提供有关以下内容的想法:1.执行顺序 2.调用之间所需的时间 - Nageswara Rao
执行顺序由堆栈的顺序定义。您不需要为这些时间戳。在相同级别的调用之间花费的时间通常更有用。如果您想为应用程序的不同阶段打上时间戳,我有一个时间戳阶段的枚举,并在达到该阶段时将时间戳添加到长整型数组中。最后,我会分析这个数组,以查看时间分布直方图,以确定最长延迟发生的位置。 - Peter Lawrey
3个回答

2
我认为不行,因为API没有提供时间戳的访问权限,无论是Exception还是StackTraceElement的API都没有。
您可以使用日志记录(例如log4j)来记录异常。日志记录可以打印出日志记录的时间戳。当然,这是记录被记录时的时间戳,而不是异常发生时的时间戳,但如果您在异常后立即记录日志,这应该不会有太大影响。

0

JVM不跟踪语句何时执行。因此,堆栈跟踪将不包含该信息。您可以修改您的Java代码以具有此功能。这是一个您应该尝试的产品——Chronon时光旅行调试器。(虽然我从未使用过)


0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接