PHP5.6、7.3,Tomcat7、8.5,速度对比

前言

我个人还在使用PHP5.6,7.3的话纯粹是拿来做测试的,因为PHP7已经支持强类型了,不再支持根据字符串调用函数的方法了,所以我的个人项目的PHP版本停留在了5.6。

最近的话想折腾一下,试试PHP5.6、7.3和Tomcat7、8、9的各方面速度怎么样,以前看过一些文章说PHP操作数据库的速度更快,而Java处理业务逻辑的速度更快,所以我就想业务逻辑交给Java去处理,而数据库操作就交给PHP去处理。

但是否这样速度就更快呢,对比一下,数据说话!

顺便说一下,服务器管理我用的是宝塔面板,服务软件的安装全部都是在宝塔面板中进行的。

测试前言

在测试的过程中发现Tomcat7和8.5的结果相仿,估计9也是这个结果,所以Tomcat9我就不测试了。Tomcat部分只在业务逻辑处理测试7和8.5,其余只测试8.5

服务器配置

  • 系统:CentOS Linux 7.6.1810 (Core)
  • 宝塔版本:6.9.8
  • 厂商:百度智能云
  • 类型:密集计算型ic3
  • CPU:1核
  • 内存:1GB

速度对比

业务逻辑处理速度

从0加到10000000

PHP5.6

<?php
$time_start = microtime(true);

$count = 0;
for ($i = 0; $i < 10000000; ++ $i) {
    $count += $i;
}

$time_end = microtime(true);

echo ($time_end - $time_start);  // 结果:0.34648394584656

结果:0.34648394584656

PHP7.3

<?php
$time_start = microtime(true);

$count = 0;
for ($i = 0; $i < 10000000; ++ $i) {
    $count += $i;
}

$time_end = microtime(true);

echo ($time_end - $time_start);  // 结果:0.12653613090515

结果:0.12653613090515

结论:PHP7.3在业务逻辑处理方面比5.6快了三倍

Tomcat7

<%
    java.util.Date d1 = new java.util.Date();
    long start_time = d1.getTime();  // 单位:毫秒
    
    long count = 0;
    for (long i = 0; i <= 10000000; ++ i) {
        count += i;
    }
    
    java.util.Date d2 = new java.util.Date();
    long end_time = d2.getTime();  // 单位:毫秒
    out.println(end_time - start_time);  // 结果:17毫秒
%>

结果:17毫秒,多刷新几次就变成了4~5毫秒,主要以4毫秒为主

Tomcat8.5

结果:99毫秒,多刷新几次也是4毫秒

业务逻辑测试总结

毕竟Java是半编译半解释型的语言,速度快很正常,PHP7达到了100多毫秒的样子,就是PHP5逊了点才300多毫秒

数据库IO测试

使用PDO的prepare和execute进行测试

PHP5.6

  • INSERT插入10000行:37.575320005417秒
  • SELECT读取10000行:0.010236978530884秒
  • SELECT循环读取10000行:1.0460438728333秒
  • UPDATE更新10000行:0.044967889785767秒
  • UPDATE循环更新10000行:36.463224887848秒
  • DELETE删除10000行:0.034432888031006秒
  • DELETE循环删除10000行:37.198384046555秒

PHP7.3

  • INSERT插入10000行:33.949599027634秒
  • SELECT读取10000行:0.021260023117065秒
  • SELECT循环读取10000行:1.0032389163971秒
  • UPDATE更新10000行:0.040410995483398秒
  • UPDATE循环更新10000行:36.759881019592秒
  • DELETE删除10000行:0.046122074127197秒
  • DELETE循环删除10000行:35.682950973511秒

PHP总结:数据库IO几乎没有版本差异,还有执行单条语句比循环执行一条语句速度快

Tomcat8.5

编译前为第一次执行,编译后为第二次执行

  • INSERT插入10000行:编译前:39.738秒,编译后:37.104秒
  • SELECT读取10000行:编译前:0.079秒,编译后:0.028秒
  • SELECT循环读取10000行:编译前:2.303秒,编译后:1.775秒
  • UPDATE更新10000行:编译前:0.060秒,编译后:0.040秒
  • UPDATE循环更新10000行:编译前:43.326秒,编译后:40.847秒
  • DELETE删除10000行:第一次执行:0.137秒
  • DELETE循环删除10000行:第一次执行:40.597秒

总结:Java的业务逻辑能力强,但数据库IO速度比PHP慢,PHP则相反。

 

混合开发测试

业务逻辑由Java编写,PHP通过CURL调用Java,测试速度

结果:

第一次测试:0.51814317703247秒

第二次测试:0.016547918319702秒

总结:

第一次测试可能是因为Java端需要编译而产生的时间,第二次测试则不再需要编译,所以速度很快。

后面又进行了若干次测试,结果均比较理想,速度上比PHP7都要快10倍左右。

只不过混合开发的缺点就是开发效率不高,可能会产生比较多的坑,但运行上能各取其优。

我个人对此表示中立态度,不推荐也不反对,因为各种项目说不好可能就存在着相关需求用这种方法可能是最佳的选择。

 

以上就是我对PHP与JSP的相关测试,大佬请轻喷,谢谢!

使用视觉化RAD 整合开发环境与元件架构进行CodeGear 创新的 PHP开发    S COTTS VALLEY, Calif.–2007年2月20日–-CodeGear,作为开发者工具领导者, 发布了Delphi for PHP, 这是一个基于元件的快速应用程式开发(RAD)IDE, 同时还发布VCL for PHP,这是一个开放原始程式码的可视元件库。 Delphi for PHPPHP的Web开发者带来了Delphi用户已经享受多年 的RAD生产力。 PHP是当今的最富盛名的动态Web语言,是10大程式设计语言之一。 Delphi for PHP使PHP能够更快且更轻松的开发丰富的资料库驱动的Web应 用程式,使其达到更高水准。    位于加拿大安大略省的一家 开发者工具公司-JomiTech的所有者 Jonath an Benedicto认为:“CodeGear开发工具是市场上最好的工具, Delphi for PHP也是如此。”Benedicto说道: “作为长期PHP的开发者, 我第一时间采用了Delphi for PHP作为我最喜爱的编辑器。VCL for PHP 具有我们所熟悉的Delphi设计,并提供了大量的面向RAD能力。如今, 我可以使用经整合的页面范本功能, 轻松地从实际网页逻辑代码中减弱GUI。Delphi for PHP真正实现了将PHP 开发引领到更高水准。”    CodeGear产品与策略部副总裁Michael Swi ndell说道:“在创建动态Web应用程式时, PHP开发者已经拥有原始程式码编辑和调试工具; 而PHP真正缺少的是快速开发工具和能够与现代工具相抗衡的元件架构, 比如Visual StudioR 和Delphi以及类似于ASP.NET 和VCL的架 构。”    Swindell说道: “Delphi for PHP提供了快速和视觉化创建强大的PHP应用程式的能力, 新的PHP元件以及打包现有PHP代码到可重复使用的视觉化元件所需要的特性和功能性 。Delphi for PHP通过无缝支持MySQLR, InterBaseR from CodeGear, 以及其他SQL资料库实现对所有这些的支持, 并通过开源VCL for PHP得以实现。MicrosoftR WindowsR RAD 开发者现在已经可以享受Delphi 和 C++BuilderR所提供的熟练性和易用性 ,可以迅速而自信地移入PHP开发。” Delphi for PHP所包含的重要特性: 适用于PHP的RAD环境 1. VCL for PHP – 基于开源PHP 5版本而开发的可视元件 库,拥有超过50个可延展和可复用的组件, 以及无缝AJAX整合 2. 与InterBase, MySQL, Oracle, Microsoft SQL Server以及其他常用资料库的开盒即用的资料库整合 3. 经整 合的PHP调试工具 4. 在Windows,Linux, Solaris 以及其他平台上的PHP应用程式的分发 5. 对各种应用程式的国际化支援 6. 使用 Data Explorer for InterBase和 MySQL, 拖拉资料库应用程式开发 7. Code editor with 使用Code Insight, Code Explorer,以及 Code Templates的代码编辑器, 使写入PHP代码更加轻松和快捷
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值