测试Swing应用程序

时间:2012-06-28 07:06:04

标签: java hibernate swing memory-management jprofiler

我正在使用Hibernate开发基于Java Swing的应用程序。我使用NetBeans IDE来构建我的应用程序。

我有大约13个子模块。我使用JInternalFrames来构建这些子模块。 4个报告使用JasperViewer。

加载我的应用程序时需要大约2到3分钟。当从一个模块切换到另一个模块时,加载每个模块需要很长时间。

现在我必须检查以下内容

  1. 如何检查整个Swing应用程序的内存和CPU以及哪个类需要占用大量CPU和内存?

  2. 如何使用简单的方法测试我的应用程序?

  3. 如何提高我的挥杆应用程序的性能?

3 个答案:

答案 0 :(得分:3)

在使用NetBeans时 - 使用内部探查器。这是获取有关您失去时间的详细信息的工具。

有关详细信息,请查看NetBeans站点,例如

答案 1 :(得分:3)

像这样的启动时间不仅仅是由于有一个大gui应用程序引起的。我认为问题是您的数据库访问。问题出现了:

  • 你是否使用了休眠的延迟加载功能?这是一个很好的功能,但如果不使用负责,可能会导致一些问题。阅读this
  • 您是在应用程序中缓存数据库中的数据还是在每次操作时从数据库中获取数据?减少加载时间的好方法是将数据存储在HashMap中。 Hibernate也有自己的caches
  • 您是否获取了整个数据库的大部分内容?这不是必需的,更好的数据库架构设计可以防止这种情况,也可以延迟加载。
  • 你的应用程序是多线程的吗?从事件派发线程中加载数据可以带来很大的好处。

问题:

  1. 最简单的工具随每个JDK一起提供:jVisualVM您可以存储.hprof文件并在其他工具中分析它们。 Memory Analyzer工具或Netbeans profiler也是不错的选择。您还可以阅读this以获取更多信息。
  2. 这取决于您要测试的内容。只是类(JUnit),GUI(UISpec4J),或者你的意思是分析而不是测试?
  3. 如上所述,您可以通过缓存数据,使用延迟加载或使应用程序成为多线程来提高性能。您还可以阅读here如何实现这一目标。

答案 2 :(得分:0)

关于你的问题:

for 3.首先测量,然后切割。在大多数情况下,一些简单的更改可以使您的性能提高80%。

for 1. VisualVM是一个很棒的免费工具,它可以帮助您测量CPU和内存消耗。然后相应地改变(并且仅)该代码。

2.我建议你看一下ReTest。它是一种相对较新的工具,它实现了功能回归测试的创新方法,并结合基于ai的猴子测试。

免责声明:我是ReTest背后公司的创始人之一。