开发过程中 有些时候为了测试性能 经常需要调试某段代码的运行时间或内存占用开销 系统提供了thinkDebug
类(实际使用thinkfacadeDebug
类即可)可以很方便的获取某个区间的运行时间和内存占用情况。 例如:
Debug::remark('begin');
// ...其 代码段
Debug::remark('end');
// ...也许这里还有其 代码
// 进行统计区间
echo Debug::getRangeTime('begin','end').'s';
表示统计begin位置到end位置的执行时间(单位是秒) begin必须是个已经标记过的位置 如果这个时候end位置还没被标记过 则会自动把当前位置标记为end标签 输出的结果类似于:0.0056s
默认的统计精度是小数点后4位 如果觉得这个统计精度不够 还可以设置例如:
echo Debug::getRangeTime('begin','end',6).'s';
可能的输出会变成:0.005587s
如果你的环境支持内存占用统计的话 还可以使用getRangeMem
方法进行区间内存开销统计(单位为kb) 例如:
echo Debug::getRangeMem('begin','end').'kb';
第三个参数使用m表示进行内存开销统计 输出的结果可能是:625kb
同样 如果end标签没有被标记的话 会自动把当前位置先标记位end标签。
助手函数
系统还提供了助手函数debug
用于完成相同的作用 上面的代码可以改成:
debug('begin');
// ...其 代码段
debug('end');
// ...也许这里还有其 代码
// 进行统计区间
echo debug('begin','end').'s';
echo debug('begin','end',6).'s';
echo debug('begin','end','m').'kb';
千年的回眸
thinkphp fields not exists 可能是字段修改后没有删除 runtime\schema 字段缓存
php think optimize:schema
重建 runtime\schema 字段缓存 解决问题
大王叫我来巡山1998
ThinkPHP 性能提高
linux或者 Mac 服务器 需要给予权限才能操作 通过命令行形式
在网站稳定后再生成上传 方法如下
路由缓存
生成类库映射文件
生成数据表字段缓存
开启请求缓存
为应用或者模块生成配置缓存文件
首先 生存路由缓存
php think optimize:route
如果 应用中 定义 了大量的路由规则 那么 可以在 实际部署完成后 进行生成路由缓存文件操作 这样 可以免除 在打开 应用时 路由注册的开销 改善路由的检测效率
操作成功以后 应用根目录runtime 文件夹下 自动生成一个 route.php 文件
生成类库映射文件
php think optimize:autoload
而类库映射文件的操作 可以提高自动加载的性能
操作成功以后 应用根目录runtime 下 自动生成一个 classmap.php 文件
生成数据表字段缓存
php think optimize:schema
如果 希望提高对数据库的查询性能 通过生成字段缓存来减少查询
操作成功以后 应用根目录runtime 文件夹下 创建 schema目录 该目录下面按照database.table.php 文件命名生成数据表 字段缓存 文件
开启请求缓存
数据实时性不 大 那么 可以进行开启
在config.php下将request_cache 改成 true 默认为 false 状态
'request_cache' => true,
一旦开启后 应用性能会有非常大的提高
为应用或者模块生成配置缓存文件
php think optimize:config
默认生成应用的配置缓存文件 调用后会在runtime目录下面生成 init.php 文件 生成配置缓存文件后 应用目录下面的config.php common.php 以及 tags.php 不会被加载 被runtime/init.php取代
在本地生成配置缓存 需要把数据库等重要的配置替换成服务器上的配置以后 再进行生成
大王叫我来巡山1998
ThinkPHP 性能提高
linux或者 Mac 服务器 需要给予权限才能操作 通过命令行形式
在网站稳定后再生成上传 方法如下
路由缓存
生成类库映射文件
生成数据表字段缓存
开启请求缓存
为应用或者模块生成配置缓存文件
首先 生存路由缓存
php think optimize:route
如果 应用中 定义 了大量的路由规则 那么 可以在 实际部署完成后 进行生成路由缓存文件操作 这样 可以免除 在打开 应用时 路由注册的开销 改善路由的检测效率
操作成功以后 应用根目录runtime 文件夹下 自动生成一个 route.php 文件
生成类库映射文件
php think optimize:autoload
而类库映射文件的操作 可以提高自动加载的性能
操作成功以后 应用根目录runtime 下 自动生成一个 classmap.php 文件
生成数据表字段缓存
php think optimize:schema
如果 希望提高对数据库的查询性能 通过生成字段缓存来减少查询
操作成功以后 应用根目录runtime 文件夹下 创建 schema目录 该目录下面按照database.table.php 文件命名生成数据表 字段缓存 文件
开启请求缓存
数据实时性不 大 那么 可以进行开启
在config.php下将request_cache 改成 true 默认为 false 状态
'request_cache' => true,
一旦开启后 应用性能会有非常大的提高
为应用或者模块生成配置缓存文件
php think optimize:config
默认生成应用的配置缓存文件 调用后会在runtime目录下面生成 init.php 文件 生成配置缓存文件后 应用目录下面的config.php common.php 以及 tags.php 不会被加载 被runtime/init.php取代
在本地生成配置缓存 需要把数据库等重要的配置替换成服务器上的配置以后 再进行生成