需要在java中传递调用方法的详细信息。我不想使用StackTrace来查找它们。
有没有其他方法来获得它们?
我知道Aspects会有所帮助,但有人担心它会降低性能。
任何建议都会有帮助。
我不知道。
最后,你要求某种仪器。换句话说:您想告诉jvm跟踪调用堆栈,更重要的是,以编程方式为您提供这些信息。
即使你只希望特定方法发生这种情况,jvm仍然必须跟踪所有方法调用,因为它无法知道最后是否调用了一个跟踪方法。而java被解释和编译为本机机器代码的事实也增加了复杂性。
因此,如上所述:没有方法可以在没有性能影响的情况下轻松跟踪方法调用。我所知道的工具可以将性能影响保持在合理的水平,如XRebel,以供日后评估,而不是程序化消费。
最后:你应该考虑你的要求。当你真正需要这些信息时,Java根本就不是一门好语言。它并不意味着保持调用堆栈。所以:真正的解决方案是选择一个更适合您的平台,或者(推荐)退一步并设计一个没有此要求的解决方案。