首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >由于性能开销而替换nodejs中的尝试/捕获

由于性能开销而替换nodejs中的尝试/捕获
EN

Stack Overflow用户
提问于 2014-09-05 09:27:46
回答 2查看 1.9K关注 0票数 1

我目前正在使用尝试/捕捉以处理JSON.parse错误。但是,我最近在阅读了一些最佳做法之后发现,在nodejs上使用try/catch有一些性能开销。性能开销是否已经修复,是否有另一种方法可以避免JSON.parse上的错误而不使用try/catch?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-09-05 13:01:58

使用try/catch构造而不是回调错误函数的问题是,try/catch无法捕获异步事件,并且在捕获异常时可能泄漏太多数据。

最佳实践是在同步事件中使用try/catch:

代码语言:javascript
运行
复制
try
{
  dangerous.function();
}
catch(error);
{
  console.log(error);
}

以及异步触发事件的回调函数:

代码语言:javascript
运行
复制
dangerous.function(function(error)
{
  console.log(error);
});
票数 0
EN

Stack Overflow用户

发布于 2014-09-05 09:40:53

没有您自己的解析器,就没有简单的方法可以避免尝试捕获。

试试这个性能测试:http://jsperf.com/try-catch-performance-overhead

使用Chrome进行测试,因为NodeJS只是V8。在我的例子中,有41%的表现被罚。但是,除非您打算每秒读取数千个JSON,否则我建议您只使用标准的尝试捕获,并使您的代码可读。

请注意,对于Firefox,这3种测试实际上没有区别。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25682702

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档