PHP多次运行.jar文件 - 可伸缩性?

时间:2012-09-26 13:59:31

标签: java php jar scalability

我正在为化学工业构建一个Web应用程序。它主要在化学结构数据库中搜索。需要进行大量的化学信息学计算,并且有很多开源解决方案可以用Java编写。

我目前想知道使用什么编程语言。我需要在Java中使用一些函数,我不想用Java编写整个系统,因为我不熟悉在其中编写Web应用程序。

所以我有这个想法,准备一些带有所需函数的.jar文件,并通过命令行在PHP中使用它们。我想知道这个解决方案的可扩展性。

在PHP中调用.jar文件,例如在一个循环中调用1000次是否很快? 参数传递给.jar的时间可以是多长?我假设大数组转换为字符串作为参数。 我怀疑这一般是一个好主意,为什么我不这样做?

感谢您的想法。

3 个答案:

答案 0 :(得分:3)

不,它效率不高。您将运行1000个JVM副本。加上启动/关闭那些jvms的开销。你最好使用正确的java服务器,比如Tomcat。

答案 1 :(得分:1)

可以做到

你提到参数。我假设你的意思是命令行参数。你是正确的,可能无法扩展。相反,使用stdin作为输入,使用stdout作为输出。

你提到调用jar文件1000次。我假设你的意思是调用jar文件的main方法。这将非常缓慢。而是在java中尽可能多地实现,因此每个请求启动jar文件几次。可以接受一些电话。只是没有任何循环。

基本准备java中整个requuest的所有数据并将其打印到你从php读取的stdout。

当然,如果你有时间学习jsp + servlet,在servlet容器中运行会更快。

答案 2 :(得分:0)

你对此提出质疑是正确的。除了可能很慢,混合PHP和Java也可能不是一个明智的想法。您应该使用100%PHP或100%Java,但不能同时使用两者。我认为两者都能满足你的需求,所以我认为你应该更好地研究这个问题。

我个人会建议Java,因为它可以相当广泛地处理后端和前端,并且有很多支持和库在线可用。如果您希望坚持使用PHP,那么我认为您也可以这样做,但是您应该谨慎地构建代码,否则您可能会轻易使Web应用程序复杂化。

但是,假设这两个选项都不是你想要的路径: 我认为参数大小的任何限制都将首先是操作系统的限制。但是,如果您认为可能正在使用这些数字,那么您应该考虑写入文件并从中读取这些jar。