我们如何跟踪地图上get和put方法的调用次数?。
我已经看到了关于JProfiler
的某个地方,但我必须说我想知道是否可以使用 Java API本身来解决问题。
答案 0 :(得分:0)
想到了几个选项。
如果您不想更改应用程序的源代码,那么内省就是可行的方法。使用探查器进行方法调用,并查看调用这些方法的程度。 VisualVM,JProfiler等。
如果您不想使用需要挂钩的外部应用程序,那么请查看面向方面的编程。例如AspectJ。为这些方法条目配置方面并记录结果。
如果您想从您自己的API记录调用,那么您可以围绕您的选择的Map实现编写一个包装器并记录调用。当然,您需要使用自定义包装器进行所有与地图相关的操作。
答案 1 :(得分:0)
假设您想要完整的Java实现,只需实现一个包含特定计数器的包装器类,该计数器在调用方法时会增加很多时间。
如果您想更好地组织代码并拥有应用程序元数据的中央“存储库”,我建议您通过制作 Observable 来实现Observer Pattern对象是您将跟踪的地图的包装器,通知此中央观察者有关正在调用的某个操作。
然后,这个中心观察者将使用您想要跟踪的特定操作的详细计数器跟踪其所有管理对象。