首页
KMS
推荐
layui
Search
1
MobaXterm最新版破解
121,446 阅读
2
Sublime text 3 最新版注册码
112,095 阅读
3
[易语言] Game-EC 驱动辅助模块8.5.1[卓越]加密狗版【破解版】
108,305 阅读
4
文件对比神器 Beyond Compare 注册码
65,076 阅读
5
Office 2016 零售版转VOL版
16,572 阅读
默认分类
编程
探究
Yii2学习笔记
疑难杂症
原创
工具
数据库
算法学习
服务器运维
网络安全
渗透测试
逆向破解
登录
Search
标签搜索
PHP
PHP Tools for Visual Studio
PHP Tools 破解
破解
Crack
VS2019
Beyond Compare
python
mitmproxy
mitmweb
mitmdump
openssl
windows
青春图床
开源
swoole
hyperf
redis
vue
SnowFlake
kali
累计撰写
27
篇文章
累计收到
40
条评论
首页
栏目
默认分类
编程
探究
Yii2学习笔记
疑难杂症
原创
工具
数据库
算法学习
服务器运维
网络安全
渗透测试
逆向破解
页面
KMS
推荐
layui
搜索到
5
篇与
的结果
2021-09-01
[2021]PHP循环性能比较
导语时间飞速流逝,转眼已经过去了3年,这几年科技在快速发展,PHP也来到了8.0.10版本。回望这几年,大数据时代悄然降临,面对海量的数据,我们迫切的需要更为快速的运算性能;基础硬件的升级、软件算法的迭代,这些都是必不可少的部分。编程语言也在不断进化着,但是我们写的代码真的高效吗?你真的会用这门语言吗?带着这些疑问来到我们今天的测试项目。循环语句是我们在编程中经常书写的代码,我们通常会使用循环对数组、集合、列表进行遍历,但是每种循环语句的实现各不相同,今天我们就对for、foreach这两个最常用的语句进行一个简单的性能测试。这次测试不包含内置函数的测试,例如array_map等回调类型的函数,也不对while、do...while语句进行测试,毕竟用while、do...while遍历数据的情况较少。其实早在2018年的时候做过这样的一个测试,但是不严谨,具体可以看之前这篇文章: PHP循环性能测试测试方法使用for、foreach、foreach-key三种方式进行嵌套空循环测试,每一层循环1000次,且每种方式运行5次,记录每次运行的耗时,取最小值作为最终测试结果。测试代码算法例子:$test_result = []; for($t = 0; $t < 5; $t++) { $start_time = microtime(true); for($i = 0; $i < 1000; $i++) { for($j = 0; $j < 1000; $j++) { // do something } } $end_time = microtime(true); $test_result[] = ($end_time-$start_time)*1000; } echo 'for:'.min($test_result).PHP_EOL;测试环境硬件环境 CPU单核 Intel(R) Xeon(R) Platinum 8255C CPU @ 2.50GHz内存2GB硬盘60GB SSD云硬盘操作系统Ubuntu Server 20.04 LTS 64bit软件环境PHP 5.6.40PHP 7.4.23PHP 8.0.10完整测试代码<?php function _for($test_count = 5, $loop_count = 1000) { $test_result = []; for($t = 0; $t < $test_count; $t++) { $start_time = microtime(true); for($i = 0; $i < $loop_count; $i++) { for($j = 0; $j < $loop_count; $j++) { // do something } } $end_time = microtime(true); $test_result[] = ($end_time-$start_time)*1000; } echo 'for:'.min($test_result).PHP_EOL; } function _foreach($test_count = 5, $loop_count = 1000) { $test_result = []; $array = range(1, $loop_count); for($t = 0; $t < $test_count; $t++) { $start_time = microtime(true); foreach($array as $value) { foreach($array as $value2) { // do something } } $end_time = microtime(true); $test_result[] = ($end_time-$start_time)*1000; } echo 'foreach:'.min($test_result).PHP_EOL; } function _foreach_key($test_count = 5, $loop_count = 1000) { $test_result = []; $array = range(1, $loop_count); for($t = 0; $t < $test_count; $t++) { $start_time = microtime(true); foreach($array as $key => $value) { foreach($array as $key2 => $value2) { // do something } } $end_time = microtime(true); $test_result[] = ($end_time-$start_time)*1000; } echo 'foreach-key:'.min($test_result).PHP_EOL; } _for(); _foreach(); _foreach_key();测试结果PHP5.6.40PHP7.4.23PHP8.0.10测试方法PHP 5.6.40PHP 7.4.23PHP 8.0.10for21.63696289062513.2529735565194.356861114502foreach46.97203636169419.380092620856.3300132751465foreach-key53.55119705200234.90209579467810.4660987854以上耗时结果均为毫秒单位,值越小越好从上面的结果可以看出,新版本对性能的提升确实非常大,基本上都是质的提升。如果可以尽量使用最新的稳定版。PHP8对比PHP7基本是3倍的性能提升。结束语这次测试结果还是让我很意外,本以为PHP7性能提升得已经够多了,没想到PHP8直接碾压,再加上PHP8引入的JIT(Just In Time),让PHP8非常乐观,不过到目前我还没弄懂在哪些情况下才会用到JIT,如果后面有时间我会专门写一篇文章来测试JIT。这篇文章的目的只是参考作用,毕竟只是空循环,实际应用中可能会复杂很多。但有一点可以肯定,新版本带来的性能提升是毋庸置疑的,大家可以放心食用~
2021年09月01日
288 阅读
0 评论
0 点赞
2020-07-21
PHP Tools for Visual Studio 破解版(1.40.11953)(更新)
如何使用请看 https://www.jindashen.cn/default/2019/11/13/112.html这篇文章。
2020年07月21日
3,589 阅读
3 评论
0 点赞
2020-06-25
PHP Tools for Visual Studio 破解版(更新)
如何使用请看 https://www.jindashen.cn/default/2019/11/13/112.html这篇文章。
2020年06月25日
3,782 阅读
5 评论
0 点赞
2019-11-13
PHP Tools for Visual Studio 破解版
PHP Tools for Visual Studio 2019 破解版这个是我无意间发现漏洞,然后破解的。。。
2019年11月13日
10,568 阅读
9 评论
0 点赞
2018-10-11
[2018]PHP循环性能比较
我们来测试一下for foreach array_map 这三个遍历数组方式的性能测试环境操作系统:Windows 7 64 位PHP版本:5.3.8 x64 TS
2018年10月11日
4,830 阅读
0 评论
0 点赞