Dan*_*ski 4 java performance swing
在我的Swing应用程序中,我遇到的问题是,在第一次创建Swing表单的新实例时,需要几百毫秒.这不是很长,但减速的主观印象真的很烦人.
它发生在所有形式,甚至是 JOptionPane消息或其他琐碎的形式.(当然,由于构造函数更复杂,更大的形式需要更长的时间)
现在我注意到第二次创建新表单实例要快得多.
由于初始启动时间并不重要,我计划在启动时创建所有重要表单的不可见实例,但这看起来像是一个肮脏的黑客.(而且我不确定它是否会起作用)
我的问题:
由于您描述了使用JOptionPane发生的问题,因此在类加载中听起来很慢.您是否有机会通过网络加载?它也可能是垃圾收集,因为旧的窗户可以为新的窗户腾出空间.
我从垃圾收集开始,因为它很容易测试和纠正:-verbose:gc在启动Java时使用参数(必须从控制台执行此操作),并注意GC是否在这些暂停期间运行.如果是,请使用-Xmx增加内存分配,并可能按照此处所述调整堆部分.
如果是网络连接速度慢的情况(像strace这样的工具可以帮助诊断这个),那么你需要预加载类(不实例化它们).您可以使用Class.forName()在后台线程上执行此操作.
除了这两个显而易见的事情之外,你还需要运行一个分析器来了解发生了什么.
| 归档时间: |
|
| 查看次数: |
1875 次 |
| 最近记录: |