gpt4 book ai didi

java - 使用 separate_jvm 在单个 JVM 中启动小程序并不总是有效

转载 作者:塔克拉玛干 更新时间:2023-11-01 21:51:53 27 4
gpt4 key购买 nike

我有一个占用大量内存的小程序,所以我们想用 separate_jvm = true 启动它,这样每个实例都有自己的 JVM(而不是共享的),这样我们就不会在重复时耗尽内存调用。这在我们的开发箱上有效,但在我们客户的计算机上失败。

这样做有安全原因吗?

这是一个经过签名和信任的小程序,因为我们正在进行 3d 渲染。

最佳答案

我假设您客户的计算机上安装了 Sun Java 6 update 10。如果没有,您可能会强制小程序到 run in a JVM whose version is atleast 6u10 .如果找不到所需版本的 JVM,我不确定将抛出的错误或显示的错误消息。

除此之外,无法保证在 separate_jvm 时会创建一个单独的 JVM 实例。参数在 APPLET 标记中指定。

唯一的保证是 applet 将在自己的 JVM 中运行,与其他 applet 分开。如果 JVM 已经可用,并且该 JVM 中没有加载小程序,则 JVM 可以在已初始化的 JVM 实例中加载小程序。

对于 Sun Java 6 u10 发行说明,以下要点值得一读:

这是来自 the 6u10 release notes 的一组粗略指南,用于共享和创建新的 JVM 实例:

  • 如果用于启动预先存在的 JVM 实例的命令行参数是所请求参数的超集,则将使用预先存在的 JVM 实例。
  • 如果为“默认”命令行参数集(即在 Java 控制面板中指定的参数,未指定 java_arguments)启动 JVM 实例,则此 JVM 实例将永远不会用于启动任何 applet甚至有一个通过 java_arguments 指定的命令行参数。
  • -Xmx 被特殊处理:如果一个预先存在的 JVM 实例通过 java_arguments 以 -Xmx256m 启动,并且一个新的 applet 请求 -Xmx128m,那么新的 applet 很可能会在预先存在的 JVM 实例中运行。换句话说,-Xmx 规范与大于或等于测试相匹配。

因此,最好的办法是在 applet 标记中提供 java_arguments,这样就很有可能在单独的 JVM 中启动 applet。

关于java - 使用 separate_jvm 在单个 JVM 中启动小程序并不总是有效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1461807/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com