Может немного не в тему, но тоже про оптимизацию скорости работы с датами.
Как-то вспомнилось…
Необходимо было сгенерировать карту сайта с количеством элементов около 500 000.
Генерация выполнялась очень медленно — порядка 30-40 секунд.
Путём анализа был выявлен участок, замедляющий код.
Это была функция date('c') — вывод даты в формате стандарта ISO 8601, напр. 2004-02-12T15:19:21+00:00.
Так как в базе хранился timestamp изменения записи, то нашлось очень лаконичное решение:
$date{10} = 'T';// Заменяем пробел между датой и временем на букву T
$date .= '+00:00';// Добавляем в конец для совместимости с форматом
Таким образом удалось сократить время ~15 раз – до 2-3 секунд.
Как-то вспомнилось…
Необходимо было сгенерировать карту сайта с количеством элементов около 500 000.
Генерация выполнялась очень медленно — порядка 30-40 секунд.
Путём анализа был выявлен участок, замедляющий код.
Это была функция date('c') — вывод даты в формате стандарта ISO 8601, напр. 2004-02-12T15:19:21+00:00.
Так как в базе хранился timestamp изменения записи, то нашлось очень лаконичное решение:
$date{10} = 'T';// Заменяем пробел между датой и временем на букву T
$date .= '+00:00';// Добавляем в конец для совместимости с форматом
Таким образом удалось сократить время ~15 раз – до 2-3 секунд.