有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java与php基准测试

我是一名php开发人员,但最近我不得不为我在学校上的一堂课编写两次相同的应用程序,一次用php,一次用java。出于好奇,我对这两个版本进行了基准测试,发现如果访问数据库,java版本比php版本慢2到20倍,如果不访问DB,则慢1到10倍。我认为有两种直接的可能性:

  1. 我的爪哇很烂
  2. 我终于可以告诉人们不要再抱怨php了

我发布了我的servlet代码here。我不想要任何吹毛求疵的抱怨或小的改进,但有人能看到一个可怕的性能问题吗?或者有人能解释为什么Java觉得它很糟糕吗

我经常听到人们说java比php更快、更具可扩展性,尤其是我的老师,他对此深信不疑,但请求越多,java的速度就越慢。php似乎不受负载增加的影响,但保持不变


共 (3) 个答案

  1. # 1 楼答案

    在成熟的JavaWeb应用程序中,Servlet将利用现有的JDBC连接池。到目前为止,建立一个新的连接将是你及时付出的最大代价

    每次尝试连接时调用Class.forName也会导致不必要的速度减慢

    JVM调优也可能是一个因素。在企业环境中,JVM内存和可能的GC配置将进行调整和调优,以在响应性和资源利用率之间实现理想的平衡

    正如Stephen C所指出的,JVM还有一种“预热”的概念

    综上所述,我不知道PHP和Java相比如何,我觉得这两种语言都能提供很好的解决方案来满足不同的需求

  2. # 2 楼答案

    您的测试似乎更多地反映了初始开销,而不是稳态性能。尝试在循环中多次执行非DB测试(这样每个测试都会多次运行代码),并查看运行时和迭代次数之间的线性关系。我怀疑java的增量成本低于php

  3. # 3 楼答案

    根据不太多的信息(做出最佳决策的地方),我猜Class.forName("com.mysql.jdbc.Driver");中的getConnection()是大时间链接

    char[]可以传递给out时,在导入文件中创建new String。普林顿是我吹毛求疵