我有一个PHP应用程序调用命令行来执行一些特定的操作。
命令行调用'java -jar somefile.jar arg1 arg2'
问题是,这很慢,因为每次调用jar时都必须启动jar。
有没有办法保持Java机器代码caching或有什么办法来优化整个过程?
谢谢,乔
更新:JAR是由我们的团队开发的。
作为一个服务使用,我将不得不安装一些java服务器(tomcat或类似),对吧?
而如何一个Java的PHP桥梁? 这可以更快吗?
如果你通过命令行来做,你实际上启动了另一个可执行程序(“java”),所以你不能对它进行任何控制。
你需要的是一个服务(在Windows中)或一个守护进程(在Linux中),它可以接收请求并处理它们; 如果不知道Java应用程序正在做什么的内部结构,那么我们就不能提供解决scheme。
它强烈依赖于应用程序在做什么。
将Java应用程序作为服务运行并处理请求是完全可能的,通过在networking套接字上侦听它们并通过相同的套接字返回它的输出。
Java应用服务器(如Tomcat)通常涉及dynamic网页生成,而不是“纯粹的”数据处理。
无论如何,Java应用程序应该被重新devise成像那样工作; 你不能只是通过命令行来获取一个单独运行的东西,而不需要任何修改就可以用它作为后端服务。
那么,没有办法让你的命令行更快一些。 该命令将加载jvm,运行代码,然后卸载所有内容。 这正是它所做的。
我可能会尝试设置一个SOAP服务或其他东西。 或者你可以让java应用程序绑定一个套接字,并用这种方式连接php。
你对java程序有多less控制? 你坚持原样吗?
您可以使用Nailgun来避免JVM的启动开销。