如何确定我的 lambda 函数在编译过程中是不是已“预置”?
Posted
技术标签:
【中文标题】如何确定我的 lambda 函数在编译过程中是不是已“预置”?【英文标题】:How can I determine if my lambda function has been "prejitted" during compilation?如何确定我的 lambda 函数在编译过程中是否已“预置”? 【发布时间】:2021-12-26 07:30:39 【问题描述】:我有一个 .NET Core 3.1 项目,其 .csproj 文件为:
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>netcoreapp3.1</TargetFramework>
<GenerateRuntimeConfigurationFiles>true</GenerateRuntimeConfigurationFiles>
<AWSProjectType>Lambda</AWSProjectType>
<CopyLocalLockFileAssemblies>true</CopyLocalLockFileAssemblies>
<PublishReadyToRun>true</PublishReadyToRun>
</PropertyGroup>
</Project>
我正在使用 AWS CodeBuild 在 Ubuntu 映像 (aws/codebuild/standard:5.0) 上编译和部署项目。
由于我是在 Ubuntu 上构建并且确实如此,因此我假设我的代码正在“预置”部署以避免冷启动。我如何才能确定它是否按预期工作?例如,我可以检查构建日志中的内容吗?或者我能找到关于 Lambda 函数的一些指标吗?
【问题讨论】:
你是绝对正确的 - 它大约是 3 倍大。请作为答案提交,我会将其标记为正确。 【参考方案1】:我不确定实际的 R2R 格式,我认为格式可能不是那么清晰,并且包含 MSIL 标头和 AOT 代码。
但是,您可以检查编译大小,由于 prejitting 的性质,R2R AOT 格式应该大得多。
其他资源
ReadyToRun Compilation
【讨论】:
以上是关于如何确定我的 lambda 函数在编译过程中是不是已“预置”?的主要内容,如果未能解决你的问题,请参考以下文章