Java 用示例检查弹簧性能和瓶颈的工具

Java 用示例检查弹簧性能和瓶颈的工具,java,performance,spring,hibernate,spring-mvc,Java,Performance,Spring,Hibernate,Spring Mvc,我对所有这些性能改进的事情都是新手。任何人都可以提供一些好的工具或技术的名称,用于检查web应用程序的性能,并在服务器端和客户端查找应用程序中的瓶颈。如果有人能提供这些工具或技术的链接示例或教程,那将非常有帮助。提前感谢你的帮助 使用VisualVM,我得到了以下结果 请务必让我知道如何在我的应用程序中找到负责此操作的代码。您是否尝试过visualVM,它是跟踪J2EE性能应用程序的免费而强大的工具,它的一些功能: 提供CPU配置文件 提供有关线程的所有信息 提供JVM堆和内存状态 提供有关

我对所有这些性能改进的事情都是新手。任何人都可以提供一些好的工具或技术的名称,用于检查web应用程序的性能,并在服务器端和客户端查找应用程序中的瓶颈。如果有人能提供这些工具或技术的链接示例或教程,那将非常有帮助。提前感谢你的帮助

使用VisualVM,我得到了以下结果


请务必让我知道如何在我的应用程序中找到负责此操作的代码。

您是否尝试过
visualVM
,它是跟踪J2EE性能应用程序的免费而强大的工具,它的一些功能:

  • 提供CPU配置文件
  • 提供有关线程的所有信息
  • 提供JVM堆和内存状态
  • 提供有关GC活动的信息

它与JDK软件包一起提供,因此您不必安装它,有关更多信息,请检查您是否尝试过它的免费且功能强大的工具,跟踪J2EE性能应用程序,它的一些功能:

  • 提供CPU配置文件
  • 提供有关线程的所有信息
  • 提供JVM堆和内存状态
  • 提供有关GC活动的信息

它与JDK软件包一起提供,因此您不必安装它,有关更多信息,请查看改进web应用程序的性能涉及两个方面

改进应用程序代码包括:

  • 应用缓存-例如JCS、EHCache
  • HTTP请求的压缩
  • 避免嵌入Java脚本
  • 平衡负载-水平/垂直缩放
  • 饼干大小减少
使用分析工具,如JProfiler、jProbe、JRockit、VisualVM

为更改的问题编辑了

你的内存有问题吗? 要查找与内存相关的问题,请定期拍摄快照并查找可能的泄漏。使用增量模式您可以在特定时间段内或在执行操作时轻松查看新分配和处置的对象,从而很容易识别内存泄漏。此外,内存数据还可以保存为.nps快照,稍后可以使用比较功能将其与其他内存快照进行比较。一旦发现内存泄漏,就可以使用内置HeapWalker进一步调查泄漏。HeapWalker经过增强,支持显示保留的大小,并提供了强大的OQL脚本引擎

此外,您还可以使用其他工具进行堆分析,如:

  • ,Java堆分析工具
  • YourKit Java分析器
  • 在Eclipse上,SAP为他们提供了帮助
  • HeapWalker也是一个不错的选择

提高web应用程序的性能涉及两个方面

改进应用程序代码包括:

  • 应用缓存-例如JCS、EHCache
  • HTTP请求的压缩
  • 避免嵌入Java脚本
  • 平衡负载-水平/垂直缩放
  • 饼干大小减少
使用分析工具,如JProfiler、jProbe、JRockit、VisualVM

为更改的问题编辑了

你的内存有问题吗? 要查找与内存相关的问题,请定期拍摄快照并查找可能的泄漏。使用增量模式您可以在特定时间段内或在执行操作时轻松查看新分配和处置的对象,从而很容易识别内存泄漏。此外,内存数据还可以保存为.nps快照,稍后可以使用比较功能将其与其他内存快照进行比较。一旦发现内存泄漏,就可以使用内置HeapWalker进一步调查泄漏。HeapWalker经过增强,支持显示保留的大小,并提供了强大的OQL脚本引擎

此外,您还可以使用其他工具进行堆分析,如:

  • ,Java堆分析工具
  • YourKit Java分析器
  • 在Eclipse上,SAP为他们提供了帮助
  • HeapWalker也是一个不错的选择

您好,我已经编辑了我的问题,并为我的web应用程序提供了一个内存分析器。现在的问题是如何找到应用程序的哪个部分负责它。如果它为我提供了一些类名,我可以很容易地将其分类,但当它提供了这样的结果时,您的应用程序中会出现OOM错误吗?是的,当用户数增加到~5-10时,它会开始给出OOM错误。嗨,我已经编辑了我的问题,并为我的web应用程序提供了一个内存分析器。现在的问题是如何找到应用程序的哪个部分负责它。如果它为我提供了一些类名,我可以很容易地将其分类,但当它提供了这样的结果时,你的应用程序中会出现OOM错误吗?是的,当用户数增加到~5-10时,它会开始给出OOM错误。难道你没有忘记关闭对象流吗?他们正在吞噬记忆。也许你需要不时地重置它们,否则它们会永远记住所有经过的对象。你要求重置的对象流。我有一个web应用程序。您能告诉我应该关闭哪种类型的对象流以及应用程序的哪一部分吗。如果您能提供任何指向文档或信息的链接,我能正确理解这一点,这将对我非常有帮助。第四行显示了
ObjectStreamClass$WeakClassKey
,因此我想您经常使用对象流。第三行也可能相关。但我不知道你或你的框架在做什么,这只是基于稀缺信息的猜测。你难道没有忘记关闭你的对象流吗?他们正在吞噬记忆。也许你需要从ti重置它们