Zend_Date слишком медленно, очень медленно

Это мой код:

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

Я использую Zend 1.11.5 на MAMP (Mac / Snow Leopard).

У кого-нибудь есть идеи, как я могу ускорить это?

2 ответа

Проблема в том, что время жизни вашего кеша очень мало. Zend_Date использует Zend_Locale, который анализирует некоторые XML (не очень маленькие), что занимает много-много времени. Создайте специальный экземпляр кеша с чрезвычайно долгим временем жизни (или лучше привязайте его к измененному времени файлов) и установите для него значение Zend_Date и Zend_Locale. Это должно значительно ускорить процесс. Но не стоит использовать Zend_Date для, скажем, повторения даты в списке заказов. Ты можешь использовать

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

Вы должны использовать Zend_Date, когда выполняете вычисления даты или другие сложные вещи с датами. Не для простого выбора, если только вам не нужна способность отображать его практически в любой локали:)

Zend_Date и некоторые другие классы Zend работают медленно. Вы можете ускорить последующие вызовы Zend_Date, используя ваш кеш:

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

Я знаю, это будет звучать упрощенно, но если вам нужна просто отформатированная обычная дата, просто используйте встроенный объект даты в php. Я гарантирую, вы увидите большую разницу в скорости.

ОБНОВИТЬ:

Если вы действительно хотите настроить класс для повышения производительности, в этом посте есть пара патчей / настроек, которые вы можете применить.

Другие вопросы по тегам