设为首页
收藏本站
Archiver
用户
登录
入住
用户名
Email
自动登录
找回密码
密码
登录
入住 CI 中国社区
首页
返回 CodeIgniter 中国首页
论坛
BBS
导读
Guide
个人主页
Space
中文手册
视频教程
案例
任务
搜索
搜索
本版
帖子
用户
设为首页
收藏本站
Archiver
开启辅助访问
切换到宽版
日志
相册
分享
记录
CodeIgniter4
CodeIgniter3
CodeIgniter2
帖子
好友
道具
勋章
收藏
任务
记录
留言板
设置
我的收藏
退出
腾讯QQ
微信登录
CodeIgniter 中国开发者社区
»
论坛
›
CodeIgniter 开发
›
教程发布与分享
›
CodeIgniter类库之Benchmarking Class
1
2
/ 2 页
下一页
返回列表
查看:
10020
|
回复:
11
CodeIgniter类库之Benchmarking Class
[复制链接]
ChrisMao
ChrisMao
当前离线
积分
173
IP卡
狗仔卡
发表于 2007-11-26 19:25:58
|
显示全部楼层
|
阅读模式
CodeIgniter中有个Benchmarking类库,它是被系统自动被加载的,不需要手工加载。Benchmarking类库能够计算出任意两个被标记点之间的代码执行时间。通过这个数值,可以评估程序员编写的程序的效率。 另外,当CodeIgniter框架被调用时,系统会调用Benchmark类库中的方法,以计算出Output类库将所有内容正确的发送至浏览器所执行的时间。
可以在我们自己编写的模型(Model)、视图(View)和控件器(Controller)中通过以下三步使用Benchmark:
标记起始点
标记结束点
调用elapsed_time方法显示结果
下面就是使用示例
$this
->
benchmark
->
mark(
'
code_start
'
);
//
Some code happens here
$this
->
benchmark
->
mark(
'
code_end
'
);
echo
$this
->
benchmark
->
elapsed_time(
'
code_start
'
,
'
code_end
'
);
我们可以任意代码行做标记,并通过elapsed_time方法计算任两个标记点之间的代码执行时间。
$this
->
benchmark
->
mark(
'
dog
'
);
//
Some code happens here
$this
->
benchmark
->
mark(
'
cat
'
);
//
More code happens here
$this
->
benchmark
->
mark(
'
bird
'
);
echo
$this
->
benchmark
->
elapsed_time(
'
dog
'
,
'
cat
'
);
echo
$this
->
benchmark
->
elapsed_time(
'
cat
'
,
'
bird
'
);
echo
$this
->
benchmark
->
elapsed_time(
'
dog
'
,
'
bird
'
);
若希望显示从框架被加载到所有内容被正确发送至浏览器中所消耗的时间,可以在你的视图文件(View)中加入如下语句,
这个语句只能在视图文件(View)中使用。
<?
php
echo
$this
->
benchmark
->
elapsed_time();
?>
这句代码和我们在之前的示例中使用的是同一个方法,只不过是没有参数。如果你的视图是使用HTML和PHP混合编写的,你还可以通过使用模板标记来显示结果
{elapsed_time}
我们还可以在自己编写的视图中使用另一个模板标记来显示内存的使用信息
{memory_usage}
PS:上面提到的{elapsed_time}和{memroy_usage}标记只能在视图文件(View)中使用。
评分
参与人数
1
威望
+5
收起
理由
Hex
+ 5
精品文章
查看全部评分
回复
使用道具
举报
提升卡
置顶卡
沉默卡
喧嚣卡
变色卡
千斤顶
显身卡
Hex
Hex
当前离线
积分
50339
IP卡
狗仔卡
发表于 2007-11-27 10:26:57
|
显示全部楼层
太棒了~~~~~~很棒的文章!加威望,加精!
回复
支持
反对
使用道具
举报
显身卡
gaochao
gaochao
当前离线
积分
8
IP卡
狗仔卡
发表于 2007-11-27 11:53:45
|
显示全部楼层
在开发过程中如果仅仅想知道一个页面的运行时间,post数据,运行了哪些sql语句等
就在/system/libraries/Output.php中
找到var $enable_profiler这个值改成TRUE
记得正式版本中关掉就行了。
回复
支持
反对
使用道具
举报
显身卡
Hex
Hex
当前离线
积分
50339
IP卡
狗仔卡
发表于 2007-11-27 12:21:18
|
显示全部楼层
在控制器里可以控制是不是输出这些内容,不用改 CI 的源代码。
回复
支持
反对
使用道具
举报
显身卡
gaochao
gaochao
当前离线
积分
8
IP卡
狗仔卡
发表于 2007-11-27 23:19:11
|
显示全部楼层
呵呵 偶就是懒得在控制器里面写的嘛
回复
支持
反对
使用道具
举报
显身卡
Hex
Hex
当前离线
积分
50339
IP卡
狗仔卡
发表于 2007-11-28 10:28:25
|
显示全部楼层
总改 CI 的源代码可不是好习惯哦~
回复
支持
反对
使用道具
举报
显身卡
gaochao
gaochao
当前离线
积分
8
IP卡
狗仔卡
发表于 2007-11-28 17:01:21
|
显示全部楼层
有些源码是不太规范,比如form helper 输出的input都不带id的,不改不行啊
回复
支持
反对
使用道具
举报
显身卡
Hex
Hex
当前离线
积分
50339
IP卡
狗仔卡
发表于 2007-11-28 17:54:13
|
显示全部楼层
你自己写辅助函数啊!
并且我觉得在视图里最好只使用 HTML 代码(当然必要的循环、分支除外),这样比较方便美工人员制作页面,这也符合 smarty 的做事方式,呵呵。
回复
支持
反对
使用道具
举报
显身卡
gaochao
gaochao
当前离线
积分
8
IP卡
狗仔卡
发表于 2007-11-29 00:09:54
|
显示全部楼层
我命苦,我的美工只负责视觉设计,不负责html,我也懒得让他负责那个,做出来的table套table跟没做一样的
回复
支持
反对
使用道具
举报
显身卡
Hex
Hex
当前离线
积分
50339
IP卡
狗仔卡
发表于 2007-11-29 10:20:09
|
显示全部楼层
呵呵,那就只好你自己弄了~~~
其实在 RoR 中,辅助方法是用在视图中的,所以在 CI 中这么用应该也会比较好。
回复
支持
反对
使用道具
举报
显身卡
下一页 »
1
2
/ 2 页
下一页
返回列表
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
入住 CI 中国社区
本版积分规则
发表回复
回帖后跳转到最后一页