gpt4 book ai didi

performance - Node js 在 60 个连接上性能缓慢

转载 作者:太空宇宙 更新时间:2023-11-04 03:11:23 25 4
gpt4 key购买 nike

我正在使用 NodeJS 将标志放入内存缓存中。

这是代码:

var app = require('express')()
, server = require('http').createServer(app)
, io = require('socket.io').listen(server);

var memcache = require('memcache');

var client = new memcache.Client();

server.listen(3005);

io.sockets.on('connection', function (socket) {
socket.emit('connected');

socket.on('check',function(data){

client.on('connect', function(){
console.log('connect');
});

client.connect();

client.set(data.id, 1, function(error, result){

console.log('Key added');
console.log(result);

client.get(data.id, function(error, result){

socket.emit('checked',data.id);

});
},600);
});
});

同时我有大约 60 个连接。

一些用户提示此代码需要大约 10-12 秒才能加载。

socket.emit('checked',data.id) 之后添加了 socket.disconect(),但速度开始变慢。

有什么想法吗?

更新

所有用户都使用 Android/iOS native 浏览器。

最佳答案

不要在每次调用时连接到 memcached,而是重用现有连接:

var app = require('express')()
, server = require('http').createServer(app)
, io = require('socket.io').listen(server);

var memcache = require('memcache');

var client = new memcache.Client();

server.listen(3005);

client.on('connect', function() {
console.log('connect');

io.sockets.on('connection', function (socket) {
socket.emit('connected');

socket.on('check',function(data){
client.set(data.id, 1, function(error, result){

console.log('Key added');
console.log(result);

// maybe unnecessary, just check if error is present
client.get(data.id, function(error, result){
socket.emit('checked',data.id);
});
},600);
});
});
});

client.connect();

关于performance - Node js 在 60 个连接上性能缓慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17292573/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com