首页 后端开发 PHP7 PHP5.6与7.3,Tomcat7与8.5的速度对比

PHP5.6与7.3,Tomcat7与8.5的速度对比

Apr 21, 2020 pm 01:32 PM
php5.6

前言

我个人还在使用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倍左右。

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

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

以上是PHP5.6与7.3,Tomcat7与8.5的速度对比的详细内容。更多信息请关注PHP中文网其他相关文章!

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)