我最近发现了一件奇怪的事,我绝对无法解释。
由于递归中有多个交错的循环,执行权限写入和从filsystem读取权限,因此我当前的项目运行缓慢。当我分析诊断工具时,我发现cpu负载要高一些。详细信息显示,parseInt调用占了总工作量的30%以上。
也可能知道有趣的事情:大多数情况下,该特定的解析会引发异常。
我不认为这种解析方法应该占用那么多功率。有人可以解释这种行为吗?
P.S。抱歉,此图片没有屏幕截图
答案 0 :(得分:6)
如果ParseInt引发异常,则性能下降是可以理解的,创建和引发异常通常很昂贵,即使您捕获并忽略它,如果多次发生,则在递归循环中这样做也会影响性能
答案 1 :(得分:3)
如果您的Parse
方法引发异常,则可能会导致性能影响。
来自Exceptions and Performance MSDN:
与异常有关的一个常见问题是,如果将异常用于通常会失败的代码,则实现的性能将是不可接受的。这是一个有效的担忧。当成员抛出异常时,其性能可能会降低几个数量级。