| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> PHP知识库 -> PHP框架Jsnpp和thinkphp6性能测试比较 -> 正文阅读 |
|
[PHP知识库]PHP框架Jsnpp和thinkphp6性能测试比较 |
最近在学习Jsnpp框架,这款框架不仅语法简洁易用,而且初步感觉执行速度相当快速,为了证实一下,所以做了这次测试。 很显然,测试是有参照系的,没有参照的情况下做的测试是无意义的,因为硬件环境等不同的话,那么测试结果是不一样的。所以首先要选择参照系,由于Jsnpp框架是PHP语言实现的框架,那么使用c语言扩展的框架就不能作为参照系,需要选择一款同样是PHP语言实现的框架。Laravel是比较流行的PHP框架,但其性能众所周知是比较低的,不用比较应该也能知道结果了。而thinkphp相对Laravel来说性能更好,因此打算先拿thinkphp来比较一下。 同时,这次测试还将使用原生的PHP来做为参照,看一下框架实现后,性能损失有多少。 测试框架: Jsnpp 4.7.0 (官网:http://www.jsnpp.com/) thinkphp 6.0 (官网:https://www.thinkphp.cn/) 测试环境: PHP7.1 测试环境本来打算使用PHP8.1,但是使用composer下载thinkphp6以后,竟然在PHP8.1下面不能使用,所以使用了PHP7来测试。 测试软件:ab软件 测试方式:模拟一万访问,200并发的情况。 测试过程记录: 1、下载最新版: 首先使用composer分别下载最新版的Jsnpp和thinkphp,这里我在相同环境下分别建了文件夹来存放下载后的源码,Jsnpp框架放在“jsnpp”文件夹里面,thinkphp框架放在“tp6”文件夹里面。 2、准备测试代码: 由于两款框架都是使用MVC架构设计,一般情况下使用都会通过模板引擎来展现页面,所以两款测试框架都使用模板。页面显示内容都是“Hello World!”。 Jsnpp框架下载后,默认就是使用模板引擎的,所以不需要修改Jsnpp框架的控制器文件,只需要把“app/view/index/index.html”这个文件内容改成“Hello World!”就可以了。 thinkphp6框架比较麻烦,需要先把控制器文件修改成如下代码:
然后添加“app/view/index/index.html”这个文件,并且内容改成“Hello World!”。 3、进行测试: 以下是Jsnpp框架的测试结果: Jsnpp框架每秒请求数基本维持在3600左右。 以下是thinkphp6的测试结果: ? ?以上是thinkphp6最好的一次测试结果,其他基本都是在3000以下,平均在2800左右。后面分析,我使用最好的这次结果来说明,即3000这个数据。 这是对thinkphp6的另一次测试 4、原生PHP代码测试: 我在同级目录下面新建了一个“php”文件夹,然后在里面放入“index.php”文件,文件内容如下: ?
这是使用PHP原生代码简单的输出“Hello World!”。 下面是测试结果: 多次测试,PHP原生代码基本上都在4000左右。 5、结论: 通过以上测试,我们可以看到,Jsnpp框架性能明显优于thinkphp6,Jsnpp框架可以达到3600,而thinkphp6只能达到3000,相当于在并发条件下,Jsnpp框架可以在thinkphp6的性能基数上提升20%的性能,(3600 - 3000) / 3000 = 0.2。 相对于原生PHP代码来说,Jsnpp框架性能损失更小,只有10%的性能损失,(4000 - 3600) / 4000 = 0.1。 而thinkphp6的性能损失达到25%,(4000 - 3000) / 4000 = 0.25。 很明显,从性能损失角度来看,两者差距是2.5倍,明显Jsnpp框架远远优于thinkphp6。 以上测试是基于台式电脑的测试,不是服务器上的测试,不同硬件环境下的数据会有变化,但是相对数据变化不会太大,测试性能差异主要看的是相对数据,在同等条件下的相对数据可以反映出不同框架的性能差异,本次测试是严格按照同等条件来进行的,这样比较才能获得正确的结论。 ? |
|
PHP知识库 最新文章 |
Laravel 下实现 Google 2fa 验证 |
UUCTF WP |
DASCTF10月 web |
XAMPP任意命令执行提升权限漏洞(CVE-2020- |
[GYCTF2020]Easyphp |
iwebsec靶场 代码执行关卡通关笔记 |
多个线程同步执行,多个线程依次执行,多个 |
php 没事记录下常用方法 (TP5.1) |
php之jwt |
2021-09-18 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/15 1:18:27- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |