Ответ 1
Я попытаюсь помочь, но, возможно, вам не хватает контекста о том, что вы загружаете, прежде чем возвращать dynamicPages
но здесь есть некоторые подсказки:
Прежде всего, очевидная часть (я должен указать это так или иначе):
1 - Позаботьтесь о том, как вы измеряете TTFB:
Измерение TTFB дистанционно означает, что вы также измеряете задержку сети в то же время, что скрывает то, что TTFB фактически измеряет: насколько быстро веб-сервер может ответить на запрос.
2 - И из документации Google Developers о Understanding Resource Timing
(здесь):
[...]. Или:
Bad network conditions between client and server, or A slowly responding server application
Чтобы обратиться к высокому TTFB, сначала вырезайте как можно больше сети. В идеале, размещайте приложение локально и смотрите, есть ли еще большой TTFB. Если есть, то приложение должно быть оптимизировано для скорости ответа. Это может означать оптимизацию запросов к базе данных, реализацию кеша для определенных частей контента или изменение конфигурации вашего веб-сервера. Есть много причин, по которым бэкэнд может быть медленным. Вам нужно будет провести исследование своего программного обеспечения и выяснить, что не соответствует вашему бюджету производительности.
Если TTFB локально локален, проблема связана с сетями между вашим клиентом и сервером. Обход сети может быть затруднен любым количеством вещей. Между клиентами и серверами много точек, и каждый из них имеет свои ограничения на подключение и может вызвать проблемы. Простейший метод проверки этого заключается в том, чтобы разместить ваше приложение на другом хосте и посмотреть, улучшается ли TTFB.
Не так очевидны:
Вы можете посмотреть официальную документацию Google о производительности Cloud Functions Performance
здесь: https://cloud.google.com/functions/docs/bestpractices/tips
Вам нужны были файлы раньше?
В соответствии с этим ответом из Firebase cloud functions is very slow
: облачные функции Firebase очень медленные:
Похоже, что многие из этих проблем можно решить, используя скрытую переменную process.env.FUNCTION_NAME, как показано здесь: https://github.com/firebase/functions-samples/issues/170#issuecomment-323375462
Доступны ли эти динамические страницы для доступа к guest
пользователю или logged
пользователю? Потому что, возможно, первый запрос должен разобраться в деталях аутентификации, поэтому он известен медленнее...
Если ничего из этого не будет сделано, я рассмотрю общие проблемы с производительностью, такие как соединение с БД (здесь: Optimize Database Performance
), улучшая конфигурацию сервера, кешируйте все, что вы можете, и позаботитесь о возможных перенаправлениях в вашем приложении...
Чтобы закончить чтение через Интернет, есть много проблем с вашей проблемой (низкая производительность при использовании простых функций облака). Как этот: https://github.com/GoogleCloudPlatform/google-cloud-node/issues/2374 && в SO: https://stackoverflow.com/search?q=%5Bgoogle-cloud-functions%5D+slow
С комментариями:
так как при использовании облачных функций штраф возникает при каждом вызове HTTP, накладные расходы по-прежнему очень высокие (т.е. 0,8 с на HTTP-вызов).
или же:
Имейте в виду, что как облачные функции, так и облачные Firestore находятся в бета-версии и не гарантируют производительности. Я уверен, что если вы сравните производительность с базой данных в реальном времени, вы увидите лучшие цифры.
Возможно, это все еще проблема.
Надеюсь, поможет!