java - 性能测试 Swing 应用程序

标签 java swing testing load

<分区>

我们有一个 Java Swing 应用程序,它基本上是一个双层应用程序 - 一个连接到数据库的 UI 层,它在两个层之间执行一些繁重的工作。

我们一直在观察应用程序的一些性能问题,并正在寻找对应用程序进行负载测试的策略。

基本上,我们的目标是启动此应用程序的多个实例并模拟负载,这将帮助我们在测试环境中找出这些性能条件。

我正在寻找有关我们如何做到这一点的建议:

  • 有什么推荐的工具吗?
  • 方法(虚拟化?/Citrix)

如果您需要更多信息来帮助您回答这个问题,请告诉我。

最佳答案

好吧,我很确定你有 JTable....这可能是问题的很大一部分。

不过是可以解决的,我不知道怎么复制我之前回答的链接,但基本上是财务数据和JTable,你要看下面...

Sun 有一个专门用于此目的的教程,称为“圣诞树”,专门解决“经常更新的数据,如金融数据”Swing/JTable 缓慢问题。

在这里,“如何创建性能良好的频繁更新的 JTable”:

http://java.sun.com/products/jfc/tsc/articles/ChristmasTree/

我发现真正令人惊奇的一件事是不断显示使用的内存:您可能想要这样做。

您会惊讶于默认的 JTable 生成了多少不必要的废话,减慢了一切,当然还使 GC 触发的方式比应有的更频繁:不必要的对象创建、不必要的图形重绘等。这一切都使得对于无法使用的应用程序,即使是在非常快速的设置下也是如此。

因此,开始实现我提供给您的链接中给出的所有技巧,您会发现一切都会运行得更加顺畅。我现在正在运行非常复杂且“不断更新”的 JTable,现在一切都很好 :)

基本上,除了最简单的情况和少量数据之外,默认的 JTable 实现非常糟糕。

一旦您开始处理“真实世界的数据”(例如财务数据;),如果您希望 JTable 表现良好,则需要按照此处概述的步骤进行操作。

我并不是说这是导致速度变慢的唯一原因,但我去过那里并实现了 Sun 在那篇文章中暗示的大部分提示,这对我有很大帮助。实际上,我从一个无法使用的应用程序变成了一个非常有趣的应用程序。

关于java - 性能测试 Swing 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2255132/

相关文章:

java - 使用 Java 监控队列

java - 哈希三个整数集的最佳方法

java - java在指定范围之间连续循环

java - 在 JOOQ 中自动将 Integer[] 转换为 List<integer>

Java制作一条定向线并使其移动

java - PaintComponent 中的 while 语句

java - Swing 在 invokeLater() 上不断生成线程

android - Robolectric:Resources$NotFoundException:带有 Android Gradle 插件 3 的字符串资源 ID

database - Rails 测试数据库中的持久表

java - 获取 java.lang.ClassNotFoundException : org. testng.TestNG 错误