美文网首页
PHP框架Jsnpp和thinkphp6性能测试比较

PHP框架Jsnpp和thinkphp6性能测试比较

作者: 简书范 | 来源:发表于2022-02-16 15:02 被阅读0次

    最近在学习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框架Jsnpp和thinkphp6性能测试比较

          本文链接:https://www.haomeiwen.com/subject/cocdlrtx.html