这是我的代码:
$frontendOptions = array('lifeTime' => 10);
$backendOptions = array('cacheDir' => '../tmp/');
$cache = Zend_Cache::factory( 'Core',
'File',
$frontendOptions,
$backendOptions);
$cache = Zend_Cache::factory('Core', 'File', $frontendOptions, $backendOptions);
$locale = new Zend_Locale('es_ES');
Zend_Registry::set('Zend_Locale', $locale);
Zend_Locale::setCache($cache);
$date = new Zend_Date('11-03-2010');
当我尝试创建Zend_Date对象时,脚本变慢。
我在MAMP(Mac / Snow Leopard)上使用Zend 1.11.5。
有谁知道我怎样才能加快这个速度?
答案 0 :(得分:4)
问题是你的缓存生命周期真的很低。 Zend_Date使用Zend_Locale,它解析一些XML(不是很小的),这需要花费大量的时间。创建具有极长生命周期的特殊缓存实例(或者更好地将其与文件的修改时间联系起来)并将其设置为Zend_Date和Zend_Locale。这应该可以大大加快速度。但是,使用Zend_Date说明...在订单列表中回显日期并不是一个好主意。你可以使用
date('d.m.Y', strtotime($timeFromDb))
在使用日期进行日期计算或其他高级操作时,您应该使用Zend_Date。不是为了简单的选择,除非你需要能够在任何语言环境中实际回应它:)
答案 1 :(得分:0)
Zend_Date和其他一些Zend类已知很慢。您可以使用缓存来加速对Zend_Date的后续调用:
$date = new Zend_Date(...);
....
$cachedDate = new Cache($date);
print $cachedDate->toString();
我知道这听起来很简单,但如果您只需要格式化的常规日期,请使用php's built-in date object。我保证你会看到一个主要的速度差异。
<强>更新强>
如果确实想要调整课程以提高效果,this post可以应用几个补丁/调整。