我有一个我想要优化的弹簧应用程序,它使用了很多内存,很少有人使用它时很好,但数字缩放了一点,我不知道从哪里开始。有没有办法知道哪个类和方法占用了哪种资源?
答案 0 :(得分:2)
最好的方法是使用分析器。那里有很多产品。我个人喜欢YourKit。这是一个偏好问题。使用分析器,您可以轻松地从代码中的位置找出实例化类的数量。您可能只是有内存泄漏。
总的来说,我认为设置应用程序服务器/ servlet容器以在JMX上公开其内部结构是个好主意。您只需设置JVM启动参数即可enable the JMX agent。然后,您可以使用JConsole或VisualVM连接到服务器并监控CPU和内存消耗。 VisualVM提供了一个简单的分析插件。
答案 1 :(得分:1)
我认为JMX将是一个良好的开端。使用Spring的JMX支持,将bean配置为与JMX集成非常容易。
http://static.springsource.org/spring/docs/3.0.5.RELEASE/reference/jmx.html