PHP实现记录代码运行时间封装类实例教程
发布时间 - 2026-01-11 01:01:36 点击率:次前言

本文介绍的是利用php记录代码运行时间测量的相关内容,分享给大家供大家参考学习。一般在要求性能的代码中, 会加入测试代码进行计算。不过每次都要写microtime, end – start 未必太麻烦了, 所以简单的写了一个类去搞,下面来看看详细的介绍:
示例代码
class TimeCost
{
private $cost = array();
private $record = array();
private $scale = 6;
public function __construct($scale = 6)
{
$this->cost = array();
$this->record = array();
$this->scale = $scale;
}
public function __toString()
{
return $this->getString();
}
/**
* start to cal time.
*
* @param mixed $key
*/
public function addCost($key)
{
$this->cost[$key] = microtime(true);
}
/**
* stop to cal time.
*
* @param mixed $key
*/
public function closeCost($key)
{
$cost = bcsub(microtime(true), $this->cost[$key], $this->scale);
if (in_array($key, array_keys($this->record))) {
$this->record[$key] = bcadd($cost, $this->record[$key], $this->scale);
} else {
$this->record[$key] = $cost;
}
return $cost;
}
public function getString($key = null)
{
if ($key) {
return "{$key}[{$this->record[$key]}]";
}
$str = '';
foreach ($this->record as $k => $v) {
$str .= "{$k}[{$v}]";
}
return $str;
}
}
用法
$obj = new TimeCost(); $token = 'test_a'; $obj->addCost($token); some_code(); $obj->closeCost($token); $reslut = $obj->getString($token);
说明
1、时间精度: 默认是保留了6位, 已经足够了, 想要更高精度, 可以在new对象的时候指定$scale参数
2、token: token是为了表示某段代码, 对应的结果会以key(token), value的形式写入到record数组中。
所以用一个token多次进行addCost和closeClost的结果会进行累积。
3、getString: 传递token则返回token对应的结果, 默认会将record中的所有结果拼接返回。
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对的支持。
# php
# 代码运行时间
# php代码运行
# 记录程序运行时间
# php代码运行时间查看类代码分享
# php中计算程序运行时间的类代码
# 的是
# 相关内容
# 更高
# 给大家
# 来看看
# 写了
# 这篇文章
# 每次都
# 谢谢大家
# 会将
# 会以
# 留了
# 要写
# 组中
# 是为了
# 麻烦了
# 有疑问
# 足够了
# TimeCost
# private
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
网站制作报价单模板图片,小松挖机官方网站报价?
北京网站制作的公司有哪些,北京白云观官方网站?
专业企业网站设计制作公司,如何理解商贸企业的统一配送和分销网络建设?
如何在腾讯云服务器上快速搭建个人网站?
创业网站制作流程,创业网站可靠吗?
奇安信“盘古石”团队突破 iOS 26.1 提权
高性能网站服务器部署指南:稳定运行与安全配置优化方案
活动邀请函制作网站有哪些,活动邀请函文案?
Laravel怎么集成Log日志记录_Laravel单文件与每日日志配置及自定义通道【详解】
Laravel如何实现URL美化Slug功能_Laravel使用eloquent-sluggable生成别名【方法】
软银砸40亿美元收购DigitalBridge 强化AI资料中心布局
Python函数文档自动校验_规范解析【教程】
Laravel软删除怎么实现_Laravel Eloquent SoftDeletes功能使用教程
胶州企业网站制作公司,青岛石头网络科技有限公司怎么样?
Laravel怎么实现验证码(Captcha)功能
如何用手机制作网站和网页,手机移动端的网站能制作成中英双语的吗?
香港服务器如何优化才能显著提升网站加载速度?
微博html5版本怎么弄发语音微博_语音录制入口及时长限制操作【教程】
Laravel怎么配置S3云存储驱动_Laravel集成阿里云OSS或AWS S3存储桶【教程】
最好的网站制作公司,网购哪个网站口碑最好,推荐几个?谢谢?
Laravel如何使用Service Provider注册服务_Laravel服务提供者配置与加载
Laravel Seeder怎么填充数据_Laravel数据库填充器的使用方法与技巧
php静态变量怎么调试_php静态变量作用域调试技巧【解答】
Laravel怎么为数据库表字段添加索引以优化查询
Laravel如何发送邮件_Laravel Mailables构建与发送邮件的简明教程
如何快速生成专业多端适配建站电话?
如何在建站宝盒中设置产品搜索功能?
广州网站制作公司哪家好一点,广州欧莱雅百库网络科技有限公司官网?
惠州网站建设制作推广,惠州市华视达文化传媒有限公司怎么样?
Laravel如何实现多级无限分类_Laravel递归模型关联与树状数据输出【方法】
如何快速选择适合个人网站的云服务器配置?
php 三元运算符实例详细介绍
Laravel如何与Vue.js集成_Laravel + Vue前后端分离项目搭建指南
Laravel如何实现数据导出到PDF_Laravel使用snappy生成网页快照PDF【方案】
详解Android——蓝牙技术 带你实现终端间数据传输
文字头像制作网站推荐软件,醒图能自动配文字吗?
如何用5美元大硬盘VPS安全高效搭建个人网站?
PHP正则匹配日期和时间(时间戳转换)的实例代码
如何实现javascript表单验证_正则表达式有哪些实用技巧
html文件怎么打开证书错误_https协议的html打开提示不安全【指南】
为什么要用作用域操作符_php中访问类常量与静态属性的优势【解答】
Laravel如何实现多表关联模型定义_Laravel多对多关系及中间表数据存取【方法】
Laravel如何配置中间件Middleware_Laravel自定义中间件拦截请求与权限校验【步骤】
如何快速生成可下载的建站源码工具?
在Oracle关闭情况下如何修改spfile的参数
Laravel如何理解并使用服务容器(Service Container)_Laravel依赖注入与容器绑定说明
Laravel如何实现密码重置功能_Laravel密码找回与重置流程
如何获取免费开源的自助建站系统源码?
家族网站制作贴纸教程视频,用豆子做粘帖画怎么制作?
nginx修改上传文件大小限制的方法

