java vs php基准测试

时间:2011-02-12 04:20:11

标签: java php benchmarking

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

  1. 我吮吸java。
  2. 我终于可以告诉别人不要再抱怨php了。
  3. 我发布了我的servlet代码here。我不希望任何挑剔的抱怨或轻微的改进,但有人可以在那里看到一个可怕的明显的性能问题?或者任何人都可以解释为什么Java感觉它必须吮吸?

    我总是听到人们说java比php更快,更具可扩展性,特别是我的老师,他确信它,但是提出的请求越多,java越慢。 php似乎没有受到增加的负载的影响,但保持不变。

3 个答案:

答案 0 :(得分:5)

在成熟的Java Web应用程序中,Servlet将使用现有的JDBC连接池。建立新连接将是您及时支付的最高成本。

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

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

正如Stephen C所指出的那样,JVM也有一种“热身”的概念。

所有这一切,我不知道PHP与Java相比如何,我觉得这两种语言都提供了很好的解决方案来分离非不相交的需求。

答案 1 :(得分:1)

基于没有太多信息(做出最佳决策的地方),我的猜测是Class.forName("com.mysql.jdbc.Driver"); getConnection()是一个很大的时间点。

new String可以传递给out.println时,在importFile中创建char[]是我的挑剔。

答案 2 :(得分:0)

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