代码之家  ›  专栏  ›  技术社区  ›  William

关于PHP和Java的几个问题

  •  3
  • William  · 技术社区  · 16 年前

    我想知道Tomcat上的JAVA(JSP)在性能方面如何与Apache进行比较。

    两个服务器具有相同的硬件配置,一个运行Tomcat/JAVA(JSP),另一个Apache/PHP,两个服务器都用它们可以处理的多个连接注销。它们会比较接近还是一个会大幅度地从另一个拉开?我只想知道Tomcat/Java(JSP)是否会成为一个大的性能冲击,如果我切换到它与PHP。如果有人能详细回答为什么一个比另一个快,那就太不可思议了。链接也很好,我在网上找不到任何令人惊讶的东西。

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

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

    谢谢

    2 回复  |  直到 16 年前
        1
  •  15
  •   cletus    16 年前

    对你正在工作的项目有好处的是尽可能少地花时间来写它们,就像开发人员的时间一样。 方式 比任何感知到的性能差异更昂贵。所以坚持你熟悉的东西。

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

    任何这样的比较都是困难的,因为你最终会用不同的语言做不同的事情。Java字节码可能更快地解释,但是任何适当的PHP安装都会使用OpCache缓存,在很大程度上否定了任何实质上的这种优势。

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

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

    10000美元可以买到很多硬件。它可以购买硬件来运行。开发时间不多。

    我有做Java和PHP开发的经验。我会的 通常地 选择PHP进行Web开发,因为:

    • 更快地测试开发中的更改(即没有构建/部署步骤和Java热部署有严重限制)。Word无法通过保存正在处理的文件并单击浏览器上的“重新加载”来表示测试更改的自由度,而不是运行Ant/Maven构建过程;
    • 更少的内存/资源泄漏问题;
    • 广泛的函数库,可以做任何你想做的事情;
    • 主机成本更低(低端)。

    我将使用Java来处理一些事情,比如涉及到很多后台处理和线程处理的事情,这些都不是PHP的优点。

    您会注意到,性能(或缺乏性能)甚至不会被认为是导致或再次出现的原因。

    很抱歉,如果这不能回答你的问题,但是这种对性能的关注是毫无意义的干扰。

        2
  •  0
  •   Asaph    16 年前

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

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

    推荐文章