有什么办法可以避免每次在 PHP 中运行 exec 命令时 JVM 启动造成的延迟?
我有两个需要使用 PHP 运行的用于加密和解密的 JAR。两者都在同一个脚本上运行,尽管一个会解密 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