两种框架的核心体积实测准备
本次测试选取的是ThinkPHP 6.0的稳定版本和Yii 2.0的稳定版本,均下载官方纯净版源码,剔除示例文件、测试文件等非核心内容,仅保留框架运行必需的核心文件。测试环境为PHP 7.4,服务器配置为2核4G内存,统一在相同环境下进行体积和性能测试。

核心文件体积统计
首先统计两个框架核心目录的文件总体积,统计范围包括框架的启动文件、核心类库、基础配置、依赖加载文件等必需内容,统计结果如下:
| 框架名称 | 核心文件总体积 | 核心文件数量 |
|---|---|---|
| ThinkPHP 6.0 | 12.3MB | 347个 |
| Yii 2.0 | 18.7MB | 521个 |
基础运行时性能测试
编写两个完全相同的基础接口,分别基于两个框架实现,接口仅返回固定的JSON数据,不额外加载业务代码,测试运行时的内存占用和响应时间,测试代码如下:
ThinkPHP基础接口代码
<?php
namespace appcontroller;
use thinkController;
use thinkresponseJson;
class Test extends Controller
{
// 基础测试接口
public function index(): Json
{
return json(['code' => 200, 'msg' => 'success']);
}
}
Yii基础接口代码
<?php
namespace appcontrollers;
use yiiwebController;
use yiiwebResponse;
class TestController extends Controller
{
// 基础测试接口
public function actionIndex()
{
Yii::$app->response->format = Response::FORMAT_JSON;
return ['code' => 200, 'msg' => 'success'];
}
}
对两个接口各发起1000次请求,取平均值得到性能数据:
| 框架名称 | 平均内存占用 | 平均响应时间 |
|---|---|---|
| ThinkPHP 6.0 | 2.1MB | 12ms |
| Yii 2.0 | 3.4MB | 19ms |
测试结果分析
从核心体积来看,ThinkPHP的核心文件总体积比Yii小6.4MB,核心文件数量也少174个,在体积层面更轻量。从运行时性能来看,ThinkPHP的基础接口内存占用比Yii低1.3MB,响应时间快7ms,整体轻量性表现更好。
不过轻量性并不是选型的唯一标准,Yii框架内置了更多开箱即用的功能组件,比如完善的权限管理、表单验证、缓存组件等,适合需要快速开发复杂业务系统的场景。而ThinkPHP核心更精简,适合对资源占用敏感、业务相对简单的项目,或者需要高度自定义框架功能的场景。
选型建议
- 如果项目对服务器资源要求严格,希望框架本身占用更少的存储和运行内存,优先选择ThinkPHP。
- 如果项目需要大量内置功能组件,减少额外开发成本,且服务器资源充足,可以选择Yii框架。
- 如果是小型项目或者个人学习项目,两种框架都可以选择,可根据自身熟悉程度决定。
注意:以上测试结果仅针对本次选取的版本,不同版本的框架核心体积和性能可能会有差异,实际选型时建议结合自身使用的版本做针对性测试。