我目前正在使用尝试/捕捉以处理JSON.parse错误。但是,我最近在阅读了一些最佳做法之后发现,在nodejs上使用try/catch有一些性能开销。性能开销是否已经修复,是否有另一种方法可以避免JSON.parse上的错误而不使用try/catch?
发布于 2014-09-05 13:01:58
使用try/catch构造而不是回调错误函数的问题是,try/catch无法捕获异步事件,并且在捕获异常时可能泄漏太多数据。
最佳实践是在同步事件中使用try/catch:
try
{
dangerous.function();
}
catch(error);
{
console.log(error);
}以及异步触发事件的回调函数:
dangerous.function(function(error)
{
console.log(error);
});发布于 2014-09-05 09:40:53
没有您自己的解析器,就没有简单的方法可以避免尝试捕获。
试试这个性能测试:http://jsperf.com/try-catch-performance-overhead
使用Chrome进行测试,因为NodeJS只是V8。在我的例子中,有41%的表现被罚。但是,除非您打算每秒读取数千个JSON,否则我建议您只使用标准的尝试捕获,并使您的代码可读。
请注意,对于Firefox,这3种测试实际上没有区别。
https://stackoverflow.com/questions/25682702
复制相似问题