【发布时间】:2021-05-09 05:15:55
【问题描述】:
我正在使用 AWS 创建一个排序比较工作台来托管排序 lambda。
我有一个在 python (python3.8) 和 javascript (nodejs12.x) lambdas 中实现的冒泡排序算法。两者都分配了 512MB 内存。
当我以 1 到 5500 的数组长度 N 对彼此运行时,我得到下图。 N 在 x 轴上,在 MS 中的时间在 y 轴上:
虽然我预计冒泡排序会很慢,但我没想到 Python 会比 Javascript 慢 100 倍。 JS 达到的最大毫秒数约为 120,而 Python 约为 11100。
可能有AWS相关的解释,还是我的实现很慢?
更新: 我将运行时从 CPython 切换到 PyPy,这将运行冒泡排序的时间减少了 x100,图表现在更接近,因此时间差异是由于编译器造成的:
【问题讨论】:
-
你试过在本地运行这些吗?他们在本地显示同样的问题吗?
-
@LimH。大声喊叫 - 我现在就试试看。
-
node/v8 使用即时编译器,cpython 没有。像这里这样的紧密循环可以从 JIT 中获益良多。 pypy(及时编译的python)也很慢吗?
-
@thejonny 感谢您提供的信息!我将创建一个新的运行时并尝试一下
-
@thejonny 我已经用切换到 PyPy 的结果更新了问题,并且成功了!您能否将您的评论添加为答案,以便我将其标记为已接受?
标签: javascript python amazon-web-services sorting aws-lambda