Archive for the 'PHP' Category

把UTC/GMT(伦敦)时间字符串转成中国时间

四月 29th, 2008 by xLight

今天第一次知道UTC时间竟然还有夏令时,这不是添乱嘛。
原来写的代码转换时区时都是用timestamp +3600*8 。。

function conventDateTime_UTCtoChina($strDatetime){
date_default_timezone_set(’Europe/London’);
$t = strtotime($strDateTime);
date_default_timezone_set(’Asia/Shanghai’);
return date(’Y-m-d H:i:s’,$t );
}

SHELL下执行PHP程序时怎么触发Xdebug记录CacheGrid?

八月 20th, 2007 by xLight

需求有时就是这么的变态

情况:通过CronTab定时并发执行的一系列php程序 ,我想检测 其中的某个程序的效率。

分析:

开始的时候想通过xdebug.profiler_enable = 1并且传入GET/POST 。
但发现SHELL下PHP并不提供产生GET/POST的机制。

通过PHP -h发现可以在调用的时候使用“ -d foo[=bar] Define INI entry foo with value ‘bar’”方式改变INI设置,

于是 一切变得简单了:php -d xdebug.profiler_enable=1  ./i.php

搞定。

WinCacheGrind中的CUM是什么意思

八月 3rd, 2007 by xLight

Function、Self、File、Called From 都很容易明白

唯独这个Cum不知道什么意思 。。

今天终于去搜索了一下XDebug的网站,发现了这个 。

原来Self是代表此Funcion自己花费的 时间,不包含此Function调用的其他Function。

而Cum则是 此Funcion整体花费的 时间,包含此Function调用的其他Function。

试了一下Zend Core 2.0 Beta,似乎问题多多

一月 31st, 2007 by xLight

从我订阅的Zend的邮件里得知了Zend Core这么一个东西,其实大体上就是集成了Zend的一大堆东西。装好之后就有了一个很好的PHP服务器环境了。
可以运行在Windows、Linux、Mac下。

系统结构图如下:

还是免费的。于是下载了一个windows版本,尝试之。

Continue reading ‘试了一下Zend Core 2.0 Beta,似乎问题多多’

smarty的foreach和section的性能比较

六月 26th, 2006 by xLight

test_foreach.inc.tpl:

 {foreach from=$loop item=item}{/foreach}   

ok!

test_section.inc.tpl:

 {section loop=$loop name=item}{/section}   

ok!

test.php //主要部分

$tpl  = new smarty;   

$data = array();
for($i=0;$iassign_by_ref(’loop’,$data);
$t=array();

$t[0] = time()+microtime(true);
$tpl->display(”test.inc.tpl”);
$t[1] = time()+microtime(true);
echo’foreach loop 100000 times:’;echo $t[1] - $t[0];echo”;

$t[0] = time()+microtime(true);
$tpl->display(”test_section.inc.tpl”);
$t[1] = time()+microtime(true);
echo’section loop 100000 times:’;echo $t[1] - $t[0];echo”;

 

其实,从两个function的功能上就可以明显的区分出哪一个性能好一些,而且看一看smarty编译后的两个模板文件的代码量差别吧! 非常说明问题的!

 

让我们来看一下,测试程序输出的结果吧:

ok!
foreach loop 100000 times:1.48861932755sec
ok!
section loop 100000 times:3.7419090271sec 

结论:如果循环中不需要复杂的控制,就用foreach吧!还可以简化变量名,移植到其他地方也比较容易一些,何乐不为呢?