.net core 我的Lambda在启动和第一线之间做什么?

.net core 我的Lambda在启动和第一线之间做什么?,.net-core,aws-lambda,aws-sdk,aws-xray,.net Core,Aws Lambda,Aws Sdk,Aws Xray,我有一些用C#编写的Lambda函数,在AWS的.NETCore2.1运行时中运行。它们的冷启动时间非常长(256MB大于8s,512大于4s) 然而,我不确定这只是冷启动时间还是其他什么;我还有其他用dotnet编写的lambda,它们的启动时间似乎更短 X射线追踪显示,“初始化”完成和任何事情发生之间有很大的差距。我在处理程序的第一行启动一个X射线子段(在跟踪中被视为“配置”) 有什么我遗漏的吗 您提供的图像中的“?”是Lambda系统代码 “初始化”部分包括运行函数的构造函数和静态块。但它

我有一些用C#编写的Lambda函数,在AWS的.NETCore2.1运行时中运行。它们的冷启动时间非常长(256MB大于8s,512大于4s)

然而,我不确定这只是冷启动时间还是其他什么;我还有其他用dotnet编写的lambda,它们的启动时间似乎更短

X射线追踪显示,“初始化”完成和任何事情发生之间有很大的差距。我在处理程序的第一行启动一个X射线子段(在跟踪中被视为“配置”)

有什么我遗漏的吗

您提供的图像中的“?”是Lambda系统代码

“初始化”部分包括运行函数的构造函数和静态块。但它还包括对程序集的一些反射,以验证和查找函数类和构造函数。如果您正在使用序列化程序,它还会查找并验证您的序列化程序


我不能给出一个明确的答案,为什么这个函数的行为与其他函数不同。你能展示一些你正在比较的函数的图表和函数的描述吗(内存,函数在做什么,zip包中的依赖关系是什么)

我应该补充一点,一旦预热,整个持续时间基本上都花在了S3请求上,所以它似乎只发生在第一个请求上。这个包只有3MB左右。如果时间是线性的或接近线性的,与您为容器指定的内存相比,那么——不管它是什么——它是CPU限制的。是的,它肯定是CPU限制的。只是不确定是我的代码,还是AWS环境在做什么。啊,好吧,我不知道反射部分-但我想这是有道理的。是否有任何文档、博客或其他东西解释冷启动期间发生的情况?当我看的时候,从来没有找到太多的细节。我将得到一些其他函数的痕迹,并将它们添加到问题中进行比较。如果您能提供反射位的源,我很高兴授予这个答案奖金?这可能很有用,但它没有提到反射位