java与php基准测试
我是一名php开发人员,但最近我不得不为我在学校上的一堂课编写两次相同的应用程序,一次用php,一次用java。出于好奇,我对这两个版本进行了基准测试,发现如果访问数据库,java版本比php版本慢2到20倍,如果不访问DB,则慢1到10倍。我认为有两种直接的可能性:
- 我的爪哇很烂李>
- 我终于可以告诉人们不要再抱怨php了李>
我发布了我的servlet代码here。我不想要任何吹毛求疵的抱怨或小的改进,但有人能看到一个可怕的性能问题吗?或者有人能解释为什么Java觉得它很糟糕吗
我经常听到人们说java比php更快、更具可扩展性,尤其是我的老师,他对此深信不疑,但请求越多,java的速度就越慢。php似乎不受负载增加的影响,但保持不变
# 1 楼答案
在成熟的JavaWeb应用程序中,Servlet将利用现有的JDBC连接池。到目前为止,建立一个新的连接将是你及时付出的最大代价
每次尝试连接时调用
Class.forName
也会导致不必要的速度减慢JVM调优也可能是一个因素。在企业环境中,JVM内存和可能的GC配置将进行调整和调优,以在响应性和资源利用率之间实现理想的平衡
正如Stephen C所指出的,JVM还有一种“预热”的概念
综上所述,我不知道PHP和Java相比如何,我觉得这两种语言都能提供很好的解决方案来满足不同的需求
# 2 楼答案
您的测试似乎更多地反映了初始开销,而不是稳态性能。尝试在循环中多次执行非DB测试(这样每个测试都会多次运行代码),并查看运行时和迭代次数之间的线性关系。我怀疑java的增量成本低于php
# 3 楼答案
根据不太多的信息(做出最佳决策的地方),我猜
Class.forName("com.mysql.jdbc.Driver");
中的getConnection()
是大时间链接当
char[]
可以传递给out时,在导入文件中创建new String
。普林顿是我吹毛求疵