У меня есть проект веб-сайта Firebase, сейчас все выглядит хорошо, за исключением страниц, созданных с помощью облачных функций Firebase, помеченных как сокращающие время отклика сервера при оценке скорости страниц. Выводы приведут к получению 0.5 - 1.5
секунд.
Статические страницы получают оценку 99
на мобильном телефоне и 86
на рабочем столе. С облачными функциями генерируются страницы, однако, самое высокое, что я получаю для мобильных устройств, составляет 75
, а самое низкое - до 30
.
Вот некоторые сведения о том, что происходит:
- Запрашиваемая страница идентифицируется, чтобы подготовить значения, необходимые для запросов Firestore.
- 4 Запроса Firestore (3 коллекции с <100 документов и 1 с <5000 документов, которые очень малы). </li>
- Данные из запросов организованы и подготовлены для рендеринга.
- Страница отображается с
res.render()
Оригинальная сборка:
- Облачные функции
- Express
- Cors
- Руль (как шаблонный движок)
Эта сборка обычно приносит мне оценку 60-75
. Время отклика сервера все еще велико, но оно соответствует диапазону 0.5 - 1.5
Альтернативная сборка:
В этой сборке я использую тот же код для запросов, за исключением шага рендеринга механизма шаблонов.
- Облачные функции
- Express
- Cors
- PUG (как шаблонный движок)
Эта сборка дает как лучшие, так и худшие оценки. Я не получаю средний балл по этому показателю 60-75
. Максимальное значение, которое я получил, - идеальное значение 100
, а самое низкое - очень низкое 30
. . Плохо то, что это очень противоречиво, и я не могу определить причину.
Это проблема холодного запуска?
Я читал о холодном запуске, поэтому я попытался поэкспериментировать, если это было проблемой.
Первая попытка
Я сделал функцию, которая будет пинговать функции, используемые моими облачными функциями. Я запускал его и включал его каждые 10 секунд на своем рабочем столе. Через несколько минут я проверил Pagespeed, есть ли какие-либо эффекты, без улучшений.
Вторая попытка
Я сделал функцию, которая будет загружать страницу, которую я тестирую на Pagespeed. Я запустил его и включил в цикл на своем рабочем столе. Я проверил Pagespeed, и он также не имел никаких эффектов.
Так что, я думаю, я должен вычеркнуть проблему Cold Start
? Или я неправильно решаю проблему холодного старта? Или, может быть, это шаблонно, поскольку использование двух разных шаблонизаторов дает разные результаты?
Во всяком случае, это то, что я сделал до сих пор, есть идеи о том, как уменьшить время отклика сервера страниц, созданных с помощью облачных функций Firebase?