gpt4 book ai didi

java - 使用 exec 通过 PHP 运行 JAR 时避免 JVM 启动延迟

转载 作者:行者123 更新时间:2023-11-30 04:41:26 29 4
gpt4 key购买 nike

有什么方法可以避免每次在 PHP 中运行 exec 命令时 JVM 启动造成的延迟吗?

我有两个用于加密和解密的 JAR,需要使用 PHP 运行。两者都在同一脚本上运行,尽管一个脚本解密 URL 参数,然后另一个脚本加密一些其他信息。当我通过命令行运行它们时,它们都在不到 0.4 秒的时间内完成。但是,当我使用 PHP exec 函数运行它们时,会启动一个新的 JVM 实例,这会使每个 JAR 执行时间增加 5 秒。

我已经研究过使用 Nailgun,但无法让它发挥作用。我找不到任何让它运行 JAR 的文档,而且当我使用类时,它也永远找不到它们。

我也考虑过使用 PHP/Java Bridge。不过,我更愿意继续使用 exec。我已经在运行 IIS 7.5,但我不确定如何配置桥接器来使用它。

我的问题是这样的:
有没有办法让 JVM 在后台运行,这样 PHP exec 函数就不需要每次启动一个新实例?我认为一定有办法,因为通过命令行没有延迟。

如果没有办法做到这一点,那么我愿意接受其他建议。运行 PHP 脚本 11 秒意味着该网站的访问者很可能会离开。

可能有用或可能没有用的其他信息:
它将在Windows Server 2008 R2 32位操作系统上运行。
仅需要本地访问。
使用IIS服务器7.5。
网站采用 PHP 编码。 PHP 版本是 5.3.5。
服务器正在运行最新的JRE - Java7 u6

最佳答案

Is there any way to keep the JVM running in the background in such a way that the PHP exec function does not need to start a new instance each time?

您可以在已知端口上启动 ServerSocket。

如果这是应用程序第一次运行,则这将成功并且该进程可以继续运行。

如果不成功,应用程序可以在该端口上打开一个套接字并根据需要发送命令并获取响应。

关于java - 使用 exec 通过 PHP 运行 JAR 时避免 JVM 启动延迟,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12194133/

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