Что я делаю Lambda между запуском и первой строкой?
У меня есть некоторые функции Lambda, написанные на С#, работающие в среде.NET Core 2.1 в AWS. Время холодного запуска на них очень велико (> 8 с с 256 МБ,> 4 с 512).
Однако я не уверен, что это просто холодное время начала или что-то еще; У меня есть другие lambdas, которые написаны в dotnet, и они, похоже, имеют более короткие времена запуска.
Трассировка рентгеновского снимка показывает большой разрыв между завершением "Инициирования" и тем, что происходит. Я начинаю подсегмент X-Ray в первой строке моего обработчика (видимый в трассировке как "Настроить").
Есть что-то, что мне не хватает?
Ответы
Ответ 1
"?" на изображении, которое вы предоставили, является системным кодом Lambda.
Сегмент "инициализация" включает в себя запуск конструктора и статических блоков для вашей функции. Но это также включает некоторое отражение в вашей сборке для проверки и поиска вашего класса функций и конструктора. Он также находит и проверяет ваш сериализатор, если вы его используете.
Я не могу дать окончательного ответа о том, почему эта функция ведет себя иначе, чем другие функции. Не могли бы вы показать некоторые графики функций, которые вы сравниваете с описаниями функций (память, функции, какие зависимости находятся в пакете zip)?