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

标签 java applet performance startup freeze

[更新:我忘了补充一点,这 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)。

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

  1. 我建议您在 init 方法上使用 invokeLater 而不是 invokeAndWait (尽管如果您使用 start/stop 方法则无法执行此操作)
  2. Opera 的自定义 java 插件表现很差......
  3. 同步块(synchronized block)和 invokeAndWait 导致的死锁

小程序速度慢

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

关于对于某些用户来说,Java Applet 启动速度非常慢?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/751701/

相关文章:

java - 在继承中,如果子类不遵守所有父类(super class)行为怎么办?

java - 如何在Android中将捕获的图像压缩到特定大小?

java - 使用 log4j 时 java applet 中的重复行

Java方法调用性能

opengl - 在OpenGL中管理大量行的最有效方法是什么?

mysql - 如何使用 Django 模型

java - 如何取消服务器的响应?

java - 如何使用 Java11 在远程计算机中创建文件/目录

java - 我可以使用 Java 小程序违反同源策略吗?

java - crossdomain.xml 没有给我的 Java applet 访问权限