+1
Misha v.3 08.05.2012 06:50
/ 08.05.2012 12:32
там делается куча лишнего. например, в момент создания объекта уже происходит печать во внутреннюю переменную.
если вы в конструкторе закомментируете вызов advancedfields, то работа ускориться в 3 раза (я замерил).
далее, вы делаете:
$dLY[^cdate::create[$mData.LY]]
а чуть ниже:
^cdate:print[$mData.LY;%h %d;$cdate:es_locale]
второй метод ещё раз выполняет create (который очень долгий).
у вас в процесе каждой итерации делается 2 create + 2 print + 2 print в dbe_print, т.е. объект cdate создаётся 6 раз, хотя можно обойтись двумя созданиями.
т.е. надо подправить класс, чтобы он в качестве параметра конструктору принимал также объект типа cdate и в этом случае просто копировал поля, а потом печать делать так:
^cdate:print[$dLY;%h %d;$cdate:es_locale]
как вариант: создавайте объект не так:
$dLY[^cdate::create[$mData.LY]]
а так:
$dLY[^cdate::create[$mData.LY;$cdate:es_locale]]
и потом печатайте его не так:
^cdate:print[$mData.LY;%h %d;$cdate:es_locale]
а так:
$dLY.local
P.S. ещё в классе куча ошибок в английских названиях месяцев и дней недели :)
P.P.S. ещё там захардкоден период с dst
P.P.P.S. я исправлю ошибки написания, добавлю конструктор от cdate, внесу небольшие улучшения и обновлю класс чуть позже (но уже могу выслать по почте).
- Parser и вывод много данных, AK666 05.05.2012 22:18 / 05.05.2012 22:20
- И все таки, чем у вас закончилась оптимизация?, max_rip 08.05.2012 12:52
- Ответ, AK666 08.05.2012 13:08
- Ответ, Sergey M. 08.05.2012 15:43 / 08.05.2012 23:54
- Еще интересно..., Sumo [M] 06.05.2012 15:18
- Ответ, AK666 06.05.2012 19:07
- Никак..., Sumo [M] 05.05.2012 23:02
- Ответ, AK666 06.05.2012 10:58
- Удачи..., Sumo [M] 06.05.2012 11:24 / 06.05.2012 11:25
- Ответ, AK666 05.05.2012 23:13