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

PHP5.6与7.3,Tomcat7与8.5的速度对比_后端开发,第1张

0基础学c语言看什么书?_后端开发

0基础学c语言可以看的书:《C语言小白变怪兽》、《啊哈C语言》。


等有一定的C语言基础了,可以看:《C Primer Plus》、《C程序设计语言,The C Programming Language》、《C专家编程》、《C陷阱与缺陷》等。


前言

我个人还在使用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秒

python常用运算符有哪些?_后端开发

python常用运算符有:算术 *** 作符(+、-、*、/、%、//、**)、比较 *** 作符(<、<=、>、>=、==、!=)、逻辑 *** 作符(and、or、not)。


● 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的速度对比的详细内容,更多请关注ki4网其它相关文章!

python如何求水仙花数?_后端开发

Python求水仙花数的方法:首先使用for in range(100,1000)进行循环;然后在循环体内通过计算得到各位数字;最后将各位数字使用pow()方法求立方再相加,并和原数进行判断即可。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://www.outofmemory.cn/zaji/557602.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2020-04-21
下一篇 2020-04-21

发表评论

登录后才能评论

评论列表(0条)

保存