C#int.ParseInt()性能问题

时间:2018-08-16 11:31:28

标签: c# performance

我最近发现了一件奇怪的事,我绝对无法解释。

由于递归中有多个交错的循环,执行权限写入和从filsystem读取权限,因此我当前的项目运行缓慢。当我分析诊断工具时,我发现cpu负载要高一些。详细信息显示,parseInt调用占了总工​​作量的30%以上。

也可能知道有趣的事情:大多数情况下,该特定的解析会引发异常。

我不认为这种解析方法应该占用那么多功率。有人可以解释这种行为吗?

使用ParseInt [With ParseInt

没有ParseInt [Without ParseInt

P.S。抱歉,此图片没有屏幕截图

2 个答案:

答案 0 :(得分:6)

如果ParseInt引发异常,则性能下降是可以理解的,创建和引发异常通常很昂贵,即使您捕获并忽略它,如果多次发生,则在递归循环中这样做也会影响性能

答案 1 :(得分:3)

如果您的Parse方法引发异常,则可能会导致性能影响。

来自Exceptions and Performance MSDN

  

与异常有关的一个常见问题是,如果将异常用于通常会失败的代码,则实现的性能将是不可接受的。这是一个有效的担忧。当成员抛出异常时,其性能可能会降低几个数量级。