关于PHP和Java的问题

时间:2009-12-03 03:08:59

标签: java php apache jsp tomcat

我想知道Tomcat上的Java(JSP)在性能方面与Apache上的PHP相比如何。

两台具有相同硬件配置的服务器,一台运行Tomcat / Java(JSP),另一台运行其他Apache / PHP,两台服务器最多可以同时处理多少个连接。它们会有点接近,还是会大幅度离开另一个?我基本上只是想知道如果我切换到它而不是PHP,Tomcat / Java(JSP)是否会成为一个重大的性能影响。如果有人能够详细解答为什么一个比另一个更快,那将是惊人的。链接也很棒,我无法在网上找到任何东西。

请不要Java vs PHP战争,这只是关于性能,与语言本身无关。

注意:如果从PHP切换到Java应该有任何其他问题,请告诉我。我真的很讨厌问这个问题,因为我通常是第一个说“你喜欢的节目”的人,但在我的情况下,我需要什么对我工作的项目也有好处。我知道有一些用JSP编写的大型网站,但这并不意味着它们更好。

由于

2 个答案:

答案 0 :(得分:15)

对您正在处理的项目有利的是花费尽可能少的时间来编写它们,因为开发人员的时间 方式 比任何感知差异都要贵性能。所以坚持你熟悉的东西。

你的问题的答案是:它们都足够快。

任何这样的比较都很难,因为你最终会以不同的语言做不同的事情。 Java字节码的解释速度可能更快,但是任何体面的PHP安装再次使用操作码缓存在很大程度上否定了实际的任何优势。

Java也有一个更复杂的开发模型,因为Web进程是持久的。这可以带来性能优势,但也可能会产生内存和其他资源泄漏等问题,而PHP并不会因为每个请求都创建和销毁所有内容(禁止会话信息,内存缓存等)。

还可以为您想要加速的任何部分创建PHP扩展。

$ 10,000可以购买大量硬件。它可以购买硬件来运行SO。它不会占用很多开发时间。

我有从事Java和PHP开发的经验。我将通常选择PHP进行Web开发,因为:

  • 更快地测试开发中的更改(即没有构建/部署步骤,Java热部署有严重的限制)。单词无法表达通过保存您正在处理的文件并在浏览器上单击重新加载来运行Ant / Maven构建过程来测试更改的自由度;
  • 内存/资源泄漏问题少得多;
  • 广泛的功能库,可以完成你想做的任何事情;
  • 主持人便宜(低端)。

我会将Java用于某些事情,比如任何涉及大量后台处理和线程的事情,这些都不是PHP的优点。

你会注意到表现(或缺乏表现)甚至没有作为理由或再次表示。

很抱歉,如果这不能回答你的问题,但对性能的担忧是毫无意义的分心。

答案 1 :(得分:0)

回答性能问题的最佳方法是使用基准测试。在PHP和Java中实现一些简单的页面,然后使用ab(Apache Benchmark)对它们进行基准测试。

话虽如此,我怀疑Java会因为两个平台的性质而优于PHP。 Java被编译为优化的字节码(一次),然后由虚拟机解释。当Tomcat运行时,JVM会加载任何给定页面所需的类,并将它们保存在内存中,这样当HTTP请求到达Web服务器时它们就可以运行了。与PHP相比,它通过Apache的每次调用从头开始重新加载和重新解释代码。这在很大程度上受到操作码缓存的帮助,但仍然没有达到JVM中发生的水平。