2

这是我的代码:

$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。

有谁知道我怎样才能加快速度?

4

2 回答 2

4

问题是您的缓存寿命非常低。Zend_Date 使用 Zend_Locale,它解析一些 XML(不是非常小的 XML),这需要很多时间。创建具有极长生命周期的特殊缓存实例(或者更好地将其绑定到文件的修改时间)并将其设置为 Zend_Date 和 Zend_Locale。这应该会大大加快速度。但是使用 Zend_Date 来表示...在订单列表中回显日期并不是一个好主意。您可以使用

date('d.m.Y', strtotime($timeFromDb))

在进行日期计算或其他有关日期的高级操作时,您应该使用 Zend_Date。不是为了简单的选择,除非您需要能够在任何语言环境中实际回显它:)

于 2011-06-02T08:19:05.477 回答
0

Zend_Date 和其他一些 Zend 类被认为很慢。您可以通过使用缓存来加速对 Zend_Date 的后续调用:

$date = new Zend_Date(...);  
 ....  
$cachedDate = new Cache($date);  
print $cachedDate->toString();

我知道这听起来很简单,但如果您只需要格式化的常规日期,只需使用php 的内置日期对象。我保证你会看到一个主要的速度差异。

更新:

如果你真的想调整类来提高性能,这篇文章有几个补丁/调整你可以应用。

于 2011-06-02T02:47:50.803 回答