从堆栈跟踪中检索Caller方法细节的不同方法[Java]

问题描述 投票:0回答:1

需要在java中传递调用方法的详细信息。我不想使用StackTrace来查找它们。

有没有其他方法来获得它们?

我知道Aspects会有所帮助,但有人担心它会降低性能。

任何建议都会有帮助。

java stack-trace
1个回答
1
投票

我不知道。

最后,你要求某种仪器。换句话说:您想告诉jvm跟踪调用堆栈,更重要的是,以编程方式为您提供这些信息。

即使你只希望特定方法发生这种情况,jvm仍然必须跟踪所有方法调用,因为它无法知道最后是否调用了一个跟踪方法。而java被解释和编译为本机机器代码的事实也增加了复杂性。

因此,如上所述:没有方法可以在没有性能影响的情况下轻松跟踪方法调用。我所知道的工具可以将性能影响保持在合理的水平,如XRebel,以供日后评估,而不是程序化消费。

最后:你应该考虑你的要求。当你真正需要这些信息时,Java根本就不是一门好语言。它并不意味着保持调用堆栈。所以:真正的解决方案是选择一个更适合您的平台,或者(推荐)退一步并设计一个没有此要求的解决方案。

© www.soinside.com 2019 - 2024. All rights reserved.