我有一个接受JSON字符串的套接字服务器。我每秒钟收到大约10个请求,所以它是一个非常繁忙的服务器。
我使用以下代码对其进行解码
try {
let result = JSON.parse(data);
} catch(e) {
console.log(e);
}
我使用try / catch的原因显而易见,因为有时我会得到无效的json字符串。
现在的问题是,如果JSON无效,字符串将保留在内存中。
检查以下屏幕截图 https://screencast.com/t/SVkcpuHbkrSK
内存不断上升,大约30分钟就达到了近200mb。有一个问题,我收到了很多无效的json字符串,它打破了实例离开服务器没有RAM。
如果我只获得有效的JSON字符串,一切正常。
为了确保这个问题我只保留了try / catch代码,之后什么也没发生。
编辑。
实际上你可以使用这段代码
var test = function () {
try {
let result = JSON.parse('invalidData');
}
catch (e) {
console.log(e);
}
};
setInterval(function () { test(); }, 100);