Zend_Date слишком медленно, очень медленно - PullRequest
2 голосов
/ 02 июня 2011

Это мой код:

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

4 голосов
/ 02 июня 2011

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

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

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

0 голосов
/ 02 июня 2011

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

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

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

UPDATE:

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

...