[更新:我忘了补充一点,这 30 秒。卡住问题仅在我第一次尝试从服务器加载文件时发生。后续加载速度非常快。也许是一些奇怪的反向 DNS 查找?我在 Google 的应用引擎上托管。]
我最近启动了一个小项目,名为 http://www.chartle.net它是围绕小程序构建的。
启动时间是影响小程序用户体验的重要因素。我收集了统计数据,并惊讶地发现启动时间常常很长(比必要的时间高出 50 到 100 倍)
小程序将在 1-3 秒内启动,具体取决于您的计算机和连接的速度。但对于某些用户来说,最多需要 100 秒。
我自己的测试结果好坏参半。大多数情况下它非常快,但有时浏览器会卡住很长时间,并且 Java 控制台不会告诉我原因。最好的猜测是,它在加载保存的图表时停止。
请帮我解决这个问题 - 最好的测试方法是打开已保存的图表(单击 http://www.chartle.net/gallery 处的“创建”链接之一)
干杯, 迪特尔
最佳答案
这是通用帮助,而不是特定于您的演示(在几次尝试后对我来说加载得很好)。
卡住小程序
在JDK bin目录中有一个非常方便的程序,名为jstack 。刷新浏览器窗口直至崩溃,然后运行:
jstack *process_id*
这将为您提供任何卡住 Java 进程的堆栈跟踪。如果 Java 不是一个单独的进程,那么您可以使用浏览器的进程(例如 Opera)。
以下几个问题对我来说很常见:
- 我建议您在 init 方法上使用 invokeLater 而不是 invokeAndWait (尽管如果您使用 start/stop 方法则无法执行此操作)
- Opera 的自定义 java 插件表现很差......
- 同步块(synchronized block)和 invokeAndWait 导致的死锁
小程序速度慢
可能是浏览器正在从服务器获取资源,无法使用jar文件?
关于对于某些用户来说,Java Applet 启动速度非常慢?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/751701/