IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: 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框架比较麻烦,需要先把控制器文件修改成如下代码:

namespace app\controller;

use app\BaseController;
use think\facade\View;

class Index extends BaseController
{
    public function index()
    {
        return View::fetch('index');
    }

    public function hello($name = 'ThinkPHP6')
    {
        return 'hello,' . $name;
    }
}

然后添加“app/view/index/index.html”这个文件,并且内容改成“Hello World!”。

3、进行测试:

以下是Jsnpp框架的测试结果:

Jsnpp框架每秒请求数基本维持在3600左右。

以下是thinkphp6的测试结果:

?

?以上是thinkphp6最好的一次测试结果,其他基本都是在3000以下,平均在2800左右。后面分析,我使用最好的这次结果来说明,即3000这个数据。

这是对thinkphp6的另一次测试

4、原生PHP代码测试:

我在同级目录下面新建了一个“php”文件夹,然后在里面放入“index.php”文件,文件内容如下:

?

<?php
echo 'Hello World!';

这是使用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
上一篇文章      下一篇文章      查看所有文章
加:2022-02-19 00:56:09  更:2022-02-19 00:57:12 
 
开发: 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/23 10:34:05-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码