python - AWS Lambda 和 Python 的 .pyc 文件

标签 python performance aws-lambda

我试图了解将带有 Python 包的 .pyc 文件包含到 AWS Lambda 中的确切效果。

我能找到的关于这个的极少数引用资料说不需要在包中包含 .pyc 文件。但是,当我不包含这些文件时,我发现我的 Lambda 函数性能受到巨大影响。

尝试在我的包中包含一个库(例如 Jinja2),当省略其 .pyc 文件时,import jinja2 所花费的时间总是超过 3 秒。

当我确实提供 .pyc 文件时,第一次执行仍然需要 3 秒,但之后,它会下降到 100-200 毫秒(我猜直到函数最终被卸载?)。

我找到了这个 SO question这可能表明 AWS Lambda 无法保存自己的编译文件,这有意义吗?

我的问题是 - 是否有关于在 AWS Lambda 上使用 Python 的 .pyc 文件的任何明确信息来源?有没有办法让 AWS Lambda 保存自己的 .pyc 文件?还是我应该继续将它们包含在我的包裹中?

最佳答案

我不这么认为,.pyc 文件是 Byte code Python 解释器将源代码编译为哪个,然后执行此代码。 考虑到这一点,我们可以控制“python 虚拟机运行哪些文件”。

我认为最好的解决方案就像你说的那样:

just continue to include them with my package.

一旦你这样做了,代码执行器就已经有了你的字节码文件。

关于python - AWS Lambda 和 Python 的 .pyc 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45664124/

相关文章:

python - 从 pd.series 格式的列中分割字符串 python

python - 在python中迭代dict of dict

javascript - 表现不佳的正则表达式

arrays - 是数组优先于集合或映射吗?

excel - 根据 2 个标准输入将行从一个 Excel 工作表复制到另一个工作表

aws-lambda - 被 CORS 阻止,也无法使用 Amplify Functions 访问 REST API 端点

python - 如何正确更新dict中的dict? (Python)

python - 如何在python中找到矩阵对角线上下元素的总和?

amazon-web-services - 使用 boto3 创建 aws lambda 集成 api 网关资源

Azure 发布管道 - 如果阶段 A 失败,阶段 B 应该运行所有作业,但会跳过