AWS Lambda和Python的.pyc文件

dan*_*elv 15 python performance aws-lambda

我试图了解将.pyc文件与Python包一起包含在AWS Lambda中的确切效果.

我能够找到的极少数参考文献说没有必要在包中包含.pyc文件.但是,当我不包含这些文件时,我看到我的Lambda函数会有巨大的性能损失.

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

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

我发现这个问题可能表明AWS Lambda无法保存自己编译的文件,这有意义吗?

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

Ede*_*eca 4

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

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

继续将它们包含在我的包裹中即可。

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