【问题标题】:Java applet doesn't fully refreshJava 小程序没有完全刷新
【发布时间】:2016-09-11 06:02:25
【问题描述】:

我一直在开发一个在 java 小程序中玩的游戏。一切正常,直到您尝试刷新页面。它似乎经常“保留”它迄今为止使用的小程序,并在同一个小程序中重新启动游戏。没有创建新进程,内存使用量猛增(~250mb 而不是~140mb),同样的控制台用于小程序。绘图过程也相当滞后;它通常会在再次绘制之前跳过大约 0.5 秒的帧。

它只是有时完全刷新小程序;创建了一个新进程(如 Windows 的任务管理器中所示),一个新的控制台打开,它使用更少的内存;它只是从头开始。

由于我在重用小程序时遇到问题,我想在每次刷新时强制它创建新进程。有没有办法做到这一点?或者我可以在它没有完全刷新时以某种方式解决问题吗?

我正在开发的游戏可以在http://patrickdev.nl/galaxy048/ 看到。运行后,按“f”切换 fps 和内存详细信息。

提前谢谢你。

【问题讨论】:

  • 你要小心,发布一个如此可爱有趣的演示的链接。我之前达到了“黑寡妇”级别,..等等,问题是什么?哦耶。我刷新了小程序,它又回到了游戏的开始,..但是,此后很快就被锁定了。内存增加了,但在OutOfMemoryError 之前我不会担心 - GC 应该会处理它。它是否在运行一些高优先级的线程? +1 考虑提供问题小程序的链接,并使访问变得如此有趣。 :)
  • 谢谢安德鲁!我不直接担心内存上升,这只是(imo)潜在问题的副作用。发生这种情况时性能下降是很遗憾的。不,它对线程的作用不大。

标签: java applet


【解决方案1】:

Applet 支持强制它在新的 jvm 中运行 applet 的参数。这在刷新页面后也有效,这正是我想要的——它从头开始。只需将此参数添加到您的小程序标签:

<param name="separate_jvm" value="true" />

更多信息http://www.oracle.com/technetwork/java/javase/plugin2-142482.html#SEPARATE_JVM

【讨论】:

  • 干得好。很高兴你把事情解决了。 :) (Wonders) 现在,我可以在妈妈叫我睡觉之前打几场比赛吗?
猜你喜欢
  • 2010-11-06
  • 2010-09-16
  • 2011-06-29
  • 2012-05-03
  • 1970-01-01
  • 1970-01-01
  • 2011-12-14
  • 2021-09-26
相关资源
最近更新 更多