0

我们如何跟踪 Map 上 get 和 put 方法的调用次数?

我在某处看到过JProfiler,但我必须说我想知道问题是否可以使用Java API 本身解决。

4

2 回答 2

0

我想到了几个选择。

  • 如果您不想更改应用程序的源代码,那么内省就是您的最佳选择。使用分析器进行方法调用,并查看调用了多少这些方法。VisualVM、JProfiler 等。

  • 如果您不想使用需要挂钩的外部应用程序,请查看面向方面的编程。例如 AspectJ。为这些方法条目配置一个方面并记录结果。

  • 如果您想记录来自您自己的 API 的调用,那么您可以围绕您的 choie 的 Map 实现编写一个包装器并记录调用。当然,对于所有与 Map 相关的操作,您需要自定义包装器。

于 2013-05-08T20:23:21.210 回答
0

假设您想要一个完整的 Java 实现,只需实现一个带有特定计数器的包装类,该计数器在调用方法时会递增。

如果您想更好地组织代码并拥有应用程序元数据的中央“存储库”,我建议您通过使Observable对象成为您将跟踪的地图的包装器来实现观察者模式,并通知这个中央观察者关于某个被调用的操作。

然后,该中央观察者将使用您要跟踪的特定操作的详细计数器来跟踪其所有托管对象。

于 2013-05-08T20:25:58.463 回答