获取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 相关文章推荐
实用函数7
Nov 08 PHP
纯真IP数据库的应用 IP地址转化成十进制
Jun 14 PHP
基于PHP文件操作的详解
Jun 05 PHP
Php中使用Select 查询语句的实例
Feb 19 PHP
php通过字符串调用函数示例
Mar 02 PHP
PHP图片等比例缩放生成缩略图函数分享
Jun 10 PHP
php5.4以下版本json不支持不转义内容中文的解决方法
Jan 13 PHP
初识laravel5
Mar 02 PHP
简单解析PHP程序的运行流程
Jun 23 PHP
浅谈mysql_query()函数的返回值问题
Sep 05 PHP
php5.x禁用eval的操作方法
Oct 19 PHP
解决laravel groupBy 对查询结果进行分组出现的问题
Oct 09 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
BBS(php &amp; mysql)完整版(三)
2006/10/09 PHP
PHP函数utf8转gb2312编码
2006/12/21 PHP
随时给自己贴的图片加文字的php代码
2007/03/08 PHP
laravel 4安装及入门图文教程
2014/10/29 PHP
PHP学习笔记之php文件操作
2016/06/03 PHP
PHP进阶学习之类的自动加载机制原理分析
2019/06/18 PHP
Javascript 获取链接(url)参数的方法
2009/02/15 Javascript
JS 操作符整理[推荐收藏]
2011/11/15 Javascript
jQuery 浮动导航菜单适合购物商品类型的网站
2014/09/09 Javascript
jQuery中trigger()方法用法实例
2015/01/19 Javascript
JavaScript显示当前文档最后修改日期的方法
2015/03/19 Javascript
javascript判断变量是否有值的方法
2015/04/20 Javascript
jQuery基础的工厂函数以及定时器的经典实例分析
2016/05/20 Javascript
浅谈bootstrap使用中的一些问题以及解决过程
2016/10/18 Javascript
Vue 2.0+Vue-router构建一个简单的单页应用(附源码)
2017/03/14 Javascript
Javascript之高级数组API的使用实例
2019/03/08 Javascript
element-ui 远程搜索组件el-select在项目中组件化的实现代码
2019/12/04 Javascript
vue使用axios实现excel文件下载的功能
2020/07/16 Javascript
[01:33]完美世界DOTA2联赛PWL S3 集锦第二期
2020/12/21 DOTA
Python入门篇之字符串
2014/10/17 Python
Python微信公众号开发平台
2018/01/25 Python
PowerBI和Python关于数据分析的对比
2019/07/11 Python
Python 面向对象静态方法、类方法、属性方法知识点小结
2020/03/09 Python
Python连接HDFS实现文件上传下载及Pandas转换文本文件到CSV操作
2020/06/06 Python
一些关于python 装饰器的个人理解
2020/08/31 Python
大韩航空官方网站:Korean Air
2017/10/25 全球购物
优秀教导主任事迹材料
2014/05/09 职场文书
课外小组活动总结
2014/08/27 职场文书
幼儿园教师师德师风演讲稿:我自豪我是一名幼师
2014/09/10 职场文书
博士生专家推荐信
2014/09/26 职场文书
大班上学期个人总结
2015/02/13 职场文书
搭讪开场白台词大全
2015/05/28 职场文书
幼儿园见习总结
2015/06/23 职场文书
海底两万里读书笔记
2015/06/26 职场文书
十大好看的穿越动漫排名:《瑞克和莫蒂》第一,国漫《有药》在榜
2022/03/18 日漫
i5-10400f处理相当于i7多少水平
2022/04/19 数码科技