AWS Lambda和Python的.pyc文件

时间:2017-08-13 19:31:52

标签: python performance aws-lambda

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

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

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

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

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

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

1 个答案:

答案 0 :(得分:0)

我不这么认为,boolean test = (condition) ? true : false; 文件是Byte code,Python解释器将源代码编译为,然后执行此代码。 考虑到这一点,我们可以控制" python虚拟机运行的文件"。

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

  

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

执行此操作后,代码执行程序已经有了您的字节码文件。