我是nodeJs和Azure的初学者。Azure函数的NodeJS比本地节点慢得多jS
我想在我的程序中使用wav-encoder npm模块。 wav-encoder
所以我写了这样的代码下面,
var WavEncoder = require('wav-encoder');
const whiteNoise1sec = {
sampleRate: 40000,
channelData: [
new Float32Array(40000).map(() => Math.random() - 0.5),
new Float32Array(40000).map(() => Math.random() - 0.5)
]
};
WavEncoder.encode(whiteNoise1sec).then((buffer)=>{
console.log(whiteNoise1sec);
console.log(buffer);
});
它运行我的本地计算机上,不到2秒。
但如果我上传类似的代码到Azure函数,它需要超过2分钟。
下面是我的函数中的代码。它由http REST调用触发。
var WavEncoder = require('wav-encoder');
module.exports = function (context, req) {
context.log('JavaScript HTTP trigger function processed a request.');
const whiteNoise1sec = {
sampleRate: 40000,
channelData: [
new Float32Array(40000).map(() => Math.random() - 0.5),
new Float32Array(40000).map(() => Math.random() - 0.5)
]
};
WavEncoder.encode(whiteNoise1sec).then((buffer)=>{
context.res = {
// status: 200, /* Defaults to 200 */
body: whiteNoise1sec
};
context.done();
});
};
您知道吗?我该如何提高Azure的性能?
更新
context.res = {
// status: 200, /* Defaults to 200 */
body: whiteNoise1sec
};
context.done();
我发现,这条线会导致性能。
如果我给大尺寸阵列context.res.body
需要很长的时间,当我打电话context.done();
也不大尺寸JSON响应适当的Azure的功能???
感谢您的答复和有用的信息,但它似乎是在我的情况下,低性能的响应,并要求大尺寸JSON引起的。 我通过将数组作为blob二进制来解决此问题。如果req和res的JSON结构不大,性能不会那么低。 这似乎是天蓝解析请求和响应缓慢。 –