Что я делаю Lambda между запуском и первой строкой?

У меня есть некоторые функции Lambda, написанные на С#, работающие в среде.NET Core 2.1 в AWS. Время холодного запуска на них очень велико (> 8 с с 256 МБ,> 4 с 512).

Однако я не уверен, что это просто холодное время начала или что-то еще; У меня есть другие lambdas, которые написаны в dotnet, и они, похоже, имеют более короткие времена запуска.

Трассировка рентгеновского снимка показывает большой разрыв между завершением "Инициирования" и тем, что происходит. Я начинаю подсегмент X-Ray в первой строке моего обработчика (видимый в трассировке как "Настроить").

Есть что-то, что мне не хватает?

AWS X-Ray trace

Ответ 1

"?" на изображении, которое вы предоставили, является системным кодом Lambda.

Сегмент "инициализация" включает в себя запуск конструктора и статических блоков для вашей функции. Но это также включает некоторое отражение в вашей сборке для проверки и поиска вашего класса функций и конструктора. Он также находит и проверяет ваш сериализатор, если вы его используете.

Я не могу дать окончательного ответа о том, почему эта функция ведет себя иначе, чем другие функции. Не могли бы вы показать некоторые графики функций, которые вы сравниваете с описаниями функций (память, функции, какие зависимости находятся в пакете zip)?