为什么AWS Lambda上的bcryptjs比本地docker慢?

问题描述 投票:2回答:1

我有用NodeJS编写的Lambda。我注意到这需要几秒钟才能完成。我添加了日志,发现bcrypt非常慢。

包装:

"dependencies": {
  "bcryptjs": "^2.4.3",

源代码:

const bcrypt = require('bcryptjs');

console.log("User was found"); // following part takes more than 1 second!
if (bcrypt.compareSync(password, user.password)) {
    console.log("Password verified"); //

这是来自AWS LogWatch的日志:

2020-01-13T20:25:30.951 User was found
2020-01-13T20:25:32.670 Password verified

2020-01-13T20:31:20.192 User was found
2020-01-13T20:31:21.550 Password verified

因此需要1.7秒。我在我的机器上的docker中运行了相同的代码

2020-01-13T20:09:48.109 User was found
2020-01-13T20:09:48.211 Password verified

本地仅需120毫秒。 AWS使用NodeJS 10.x,本地docker映像可能是8.x。我不知道如何告诉Docker反映packaged.yaml中的更改。

这是NodeJS回归吗?还是有关AWS配置的问题?

node.js amazon-web-services bcrypt
1个回答
0
投票

我有同样的问题,这是因为您正在使用bcryptjs库,尝试使用bcrypt要快得多。 Bcryptjs使用纯javascipt,这就是为什么速度太慢的原因bcrypt使用c ++扩展

© www.soinside.com 2019 - 2024. All rights reserved.