首页 > 解决方案 > 为什么 Python Lambda 比具有相同功能的 Javascript Lambda 慢得多?

问题描述

我正在使用 AWS 创建一个排序比较工作台来托管排序 lambda。

我有一个在 python (python3.8) 和 javascript (nodejs12.x) lambdas 中实现的冒泡排序算法。两者都分配了 512MB 内存。

当我以 1 到 5500 的数组长度 N 对彼此运行这些时,我得到下图。N 在 x 轴上,在 MS 中所用的时间在 y 轴上:

Python 冒泡排序与 Javascript 冒泡排序

虽然我预计冒泡排序会很慢,但我没想到 Python 会比 Javascript 慢 100 倍。JS 达到的最大毫秒数约为 120,而 Python 约为 11100。

也许有AWS相关的解释,或者我的实现很慢?

更新: 我将运行时从 CPython 切换到 PyPy,这将运行冒泡排序的时间减少了 x100,图表现在更接近,因此时间差异是由编译器造成的:

PyPy 冒泡排序与节点冒泡排序

标签: javascriptpythonamazon-web-servicessortingaws-lambda

解决方案


cpython 和 node 的不同之处在于代码的解释方式:


推荐阅读