对于某些用户,Java Applet的启动速度非常慢?

时间:2009-04-15 13:31:01

标签: java applet performance startup freeze

[更新:我忘了加上这30秒。冻结问题仅在我第一次尝试从服务器加载文件时发生。后续加载非常快。也许一些奇怪的反向DNS查找?我正在托管谷歌的发动机。]

我最近创建了一个名为http://www.chartle.net的小项目,它围绕一个小程序构建。

启动时间是用户体验applet的重要因素。我收集统计数据并且感到震惊,因为我经常发现很长的启动时间(因此需要50到100倍)

小程序在1-3秒内启动,具体取决于计算机和连接的速度。对于一些用户来说,它最多需要100秒。

我的测试结果好坏参半。它主要是非常快,但有时会冻结浏览器很长时间,而Java控制台并没有告诉我原因。最好的猜测是,它在加载已保存的图表时会停止。

请帮我解决这个问题 - 通过打开已保存的图表进行最佳测试(点击http://www.chartle.net/gallery上的'创建'链接之一)

干杯, 迪特

2 个答案:

答案 0 :(得分:2)

这是通用的帮助,而不是特定于你的演示(在几次尝试中为我加载了很好)。

冻结小程序

在JDK bin目录中有一个非常方便的程序jstack。刷新浏览器窗口,直到崩溃然后运行:

jstack *process_id*

这将为您提供任何冻结Java进程的堆栈跟踪。如果Java不是一个单独的过程,那么您可以使用浏览器的过程(例如,对于Opera)。

以下几个问题对我来说很常见:

  1. 我建议您在init方法上使用invokeLater而不是invokeAndWait(尽管如果使用start / stop方法就不能这样做)
  2. Opera的自定义java插件行为非常差......
  3. 由synch块和invokeAndWait的
  4. 引起的死锁

    慢速小程序

    浏览器可能从服务器获取资源,无法使用jar文件?

答案 1 :(得分:1)

可能只有旧插件会导致这些问题。这意味着基本上所有人都在OSX上运行,而其他用户在1.6_update_10之前使用Java。

所以,我真的很感激有这样设置的人来观看他们的Java控制台并描述第一次启动行为。

干杯, 迪特