获取php页面执行时间,数据库读写次数,函数调用次数等(THINKphp)


Posted in PHP onJune 03, 2013

THINKphp里面有调试运行状态的效果:

Process:0.2463s (Load:0.0003s Init:0.0010s Exec:0.1095s Template:0.1355s )|DB:13 queries 0 writes| Cache:2 gets,0 writes|UseMem:415 kb|LoadFile:20|CallFun:63,1370

代表的含义:

运行信息: 整体执行时间0.2463s ( 加载:0.0003s 初始化:0.0010s 执行:0.1095s 模板:0.1355s ) | 数据库 :13次读操作 0次写操作 | 缓存:2次读取,0次写入 | 使用内存:415 kb | 加载文件:20 | 函数调用:63(自定义),1370(内置)

下面来分析一下这些数据是怎么获取到的?

PHP获取页面执行时间:

/** 
* 得到当前时间 
*/ 
function getMicrotime() { list ($usec, $sec) = explode(" ", microtime()); 
return ((float) $usec + (float) $sec); 
}

使用:上面的方法可以获取当前时间,计算页面执行时间可以在程序开头和结尾出分别执行该方法,最后时间差就是页面执行的时间,原理很简单。

获取数据库读写次数

在数据库插入和读取的时候设置一个全局变量,每次执行成功一次$i++一次,获取php页面执行时间,数据库读写次数,函数调用次数等(THINKphp) ,这是tp里面db类的方法,而N的方法是:自动累计的一个方法。

同理缓存也是这样计算出来的

内存的开销
memory_get_usage可以获取当前内存的消耗量,可以在程序开始和结尾分别调用,差值就是内存的开销

加载文件的数量
get_included_files:Gets the names of all files that have been included using include, include_once, require or require_once.

也就是可以获取到所有的include,require的文件数,返回引入文件的数组:

官网例子":

<?php 
// This file is abc.php include 'test1.php'; 
include_once 'test2.php'; 
require 'test3.php'; 
require_once 'test4.php'; 
$included_files = get_included_files(); 
foreach ($included_files as $filename) { 
echo "$filenamen"; 
} 
?>

返回的结果是:

abc.php
test1.php
test2.php
test3.php
test4.php

函数调用方法
第一个看这个,感觉是在每个方法里面调用时自动+1.但是感觉不大可能,貌似这个每个方法里写不靠谱,这群里讨论半天,最后发现php的一个函数:

get_defined_functions返回引入PHP文件的所有方法的array格式,包括自定义的,内置的。

引入官网的一个例子:

<?php 
function myrow($id, $data) 
{ 
return "<tr><th>$id</th><td>$data</td></tr>n"; 
} 
$arr = get_defined_functions(); 
print_r($arr); 
?>

结果是:

Array 
( 
[internal] => Array 
( 
[0] => zend_version 
[1] => func_num_args 
[2] => func_get_arg 
[3] => func_get_args 
[4] => strlen 
[5] => strcmp 
[6] => strncmp 
... 
[750] => bcscale 
[751] => bccomp 
) [user] => Array 
( 
[0] => myrow 
) 
)

user为自定义方法,internal为内置方法数组。

引申:

get_defined_constants 获取定义所有常量的数组
get_defined_functions 获取定义所有函数的数组
get_defined_vars 获取定义所有变量的数组
get_declared_classes 返回已经定义的类的数组

PHP 相关文章推荐
PHP系统流量分析的程序
Oct 09 PHP
PHP学习之正则表达式
Apr 17 PHP
第七章 php自定义函数实现代码
Dec 30 PHP
PHP取进制余数函数代码
Jan 19 PHP
php中DOMElement操作xml文档实例演示
Mar 26 PHP
基于empty函数的输出详解
Jun 17 PHP
php实例分享之通过递归实现删除目录下的所有文件详解
May 15 PHP
php清除和销毁session的方法分析
Mar 19 PHP
Mac环境下php操作mysql数据库的方法分享
May 11 PHP
详解PHP文件的自动加载(autoloading)
Feb 04 PHP
实例介绍PHP删除数组中的重复元素
Mar 03 PHP
php设计模式之组合模式实例详解【星际争霸游戏案例】
Mar 27 PHP
php变量作用域的深入解析
Jun 03 #PHP
CURL的学习和应用(附多线程实现)
Jun 03 #PHP
php魔术方法与魔术变量、内置方法与内置变量的深入分析
Jun 03 #PHP
PHP flush()与ob_flush()的区别详解
Jun 03 #PHP
PHP导出EXCEL快速开发指南--PHPEXCEL的使用详解
Jun 03 #PHP
PHP Cookie的使用教程详解
Jun 03 #PHP
PHP register_shutdown_function函数的深入解析
Jun 03 #PHP
You might like
通过缓存数据库结果提高PHP性能的原理介绍
2012/09/05 PHP
php中session使用示例
2014/03/29 PHP
php常用字符串比较函数实例汇总
2014/11/24 PHP
PHP如何通过传引用的思想实现无限分类(代码简单)
2015/10/13 PHP
深入解析PHP的Laravel框架中的event事件操作
2016/03/21 PHP
php删除txt文件指定行及按行读取txt文档数据的方法
2017/01/30 PHP
YII分模块加载路由的实现方法
2018/10/01 PHP
PHP实现简单的计算器
2020/08/28 PHP
mapper--图片热点区域高亮组件官方站点
2007/12/22 Javascript
JS array 数组详解
2009/03/22 Javascript
JavaScript高级程序设计(第3版)学习笔记12 js正则表达式
2012/10/11 Javascript
jquery的map与get方法详解
2013/11/04 Javascript
javascript中对变量类型的判断方法
2015/08/09 Javascript
jquery 实现输入邮箱时自动补全下拉提示功能
2015/10/04 Javascript
javascript实现滚动效果的数字时钟实例
2016/07/21 Javascript
PhotoSwipe异步动态加载图片方法
2016/08/25 Javascript
Vue单文件组件基础模板小结
2017/08/10 Javascript
在Vue组件化中利用axios处理ajax请求的使用方法
2017/08/25 Javascript
Express进阶之log4js实用入门指南
2018/02/10 Javascript
vue+axios新手实践实现登陆的示例代码
2018/06/06 Javascript
在小程序中使用Echart图表的示例代码
2018/08/02 Javascript
Vuex,iView UI面包屑导航使用扩展详解
2019/11/04 Javascript
Python如何import文件夹下的文件(实现方法)
2017/01/24 Python
python与caffe改变通道顺序的方法
2018/08/04 Python
Python 实现输入任意多个数,并计算其平均值的例子
2019/07/16 Python
安装python及pycharm的教程图解
2019/10/10 Python
PYcharm 激活方法(推荐)
2020/03/23 Python
python 生成任意形状的凸包图代码
2020/04/16 Python
详解Python中Pyyaml模块的使用
2020/10/08 Python
2014年最新党员对照检查材料汇总
2014/09/15 职场文书
校长师德师风自我剖析材料
2014/09/29 职场文书
高考升学宴答谢词
2015/01/20 职场文书
人事任命通知
2015/04/20 职场文书
Python - 10行代码集2000张美女图
2021/05/23 Python
Java日常练习题,每天进步一点点(38)
2021/07/26 Java/Android
css3中2D转换之有趣的transform形变效果
2022/02/24 HTML / CSS