Java 测试Swing应用程序

Java 测试Swing应用程序,java,hibernate,swing,memory-management,jprofiler,Java,Hibernate,Swing,Memory Management,Jprofiler,我正在使用Hibernate开发一个基于Java Swing的应用程序。我已经使用NetBeans IDE构建了我的应用程序 我有大约13个子模块。我使用了JInternalFrames来构建这些子模块。和4个使用JasperViewer的报告 加载我的应用程序大约需要2-3分钟。当从一个模块切换到另一个模块时,加载每个模块需要很多时间 现在我必须检查以下事项 如何检查我的整个Swing应用程序的内存和CPU,以及哪个类占用了大量的CPU和内存 如何使用简单的方法测试我的应用程序 如何提高swi

我正在使用Hibernate开发一个基于Java Swing的应用程序。我已经使用NetBeans IDE构建了我的应用程序

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

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

现在我必须检查以下事项

  • 如何检查我的整个Swing应用程序的内存和CPU,以及哪个类占用了大量的CPU和内存

  • 如何使用简单的方法测试我的应用程序

  • 如何提高swing应用程序的性能


  • 在使用NetBeans时,请使用内部探查器。这是一个获取关于你在哪里浪费时间的详细信息的工具

    有关更多信息,请查看NetBeans站点,例如


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

        • 您是否使用hibernate的延迟加载功能?这是一个不错的特性,但如果不使用,可能会导致一些问题。阅读
        • 您是在应用程序中缓存数据库中的数据,还是每次操作都从数据库中获取数据?减少加载时间的一个好方法是将数据存储在HashMap中。Hibernate也有自己的功能
        • 您是否获取整个数据库的很大一部分?这是不需要的,更好的db模式设计可以防止这种情况,也可以防止延迟加载
        • 您的应用程序是多线程的吗?从事件分派线程加载数据可以带来很大的好处
        关于你的问题:

      • 每个JDK都附带了最简单的工具:您可以存储.hprof文件,也可以在其他工具中分析它们。内存分析器工具或也是一个不错的选择。您还可以阅读以了解更多信息
      • 这取决于要测试的内容。只是类()、GUI(),还是说分析而不是测试
      • 您可以通过缓存数据、使用延迟加载或如上所述使应用程序多线程来提高性能。您还可以阅读如何实现这一点

      • 关于你的问题:

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

        1。是一个伟大的免费工具,它将帮助您测量CPU和内存消耗。而不是相应地(并且只)更改该代码

        两个人。我建议你看一看。这是一个相对较新的工具,实现了功能回归测试与基于ai的猴子测试相结合的创新方法


        免责声明:我是支持重新测试的公司创始人之一。

        过度推广特定产品/资源可能会被社区视为垃圾邮件。看一看,特别是最后一部分:避免公开的自我推销。你可能也对我感兴趣。我认为你最后10个答案(在1小时内)都是在推销你的产品。不完全是,但已经足够接近了。非常感谢你的链接!