|
|
1
232
检查一下。
以毫秒为单位:
新结果:
|
|
|
2
114
在…的后面 查看为这两种情况生成的内容。代码如下: C#:
C#:
我不是IL方面的专家,但我们可以看到在第四行创建了一个本地异常对象
我可以安全地假设,如果没有异常发生,那么创建本地变量来保存异常对象的开销就很大
|
|
|
3
72
不。如果try/finally块排除的琐碎优化实际上对您的程序产生了可测量的影响,那么您可能不应该首先使用.NET。 |
|
|
4
37
Quite comprehensive explanation of the .NET exception model. Rico Mariani的表演花絮: Exception Cost: When to throw and when not to
|
|
|
5
28
示例中的结构与
本·M
. 它将延伸到内部的顶部
当我从中运行原始测试代码时 ,我注意到调试和Releas配置都有差异。 在这个版本中,我注意到调试版本中存在差异(实际上比其他版本更大),但在发布版本中没有差异。
:
编辑:
你看,结果是不合理的。在某些情况下,使用Try/Catch的版本实际上更快! |
|
|
6
16
我测试了
如果循环做的工作很少(在我的测试中,我做了一个
如果循环做了一些实际工作(在我的测试中,我称为Int32.Parse方法),异常处理的影响太小,无法测量。通过交换循环的顺序,我得到了更大的差异。。。 |
|
|
7
12
|
|
|
8
10
尽管” 预防胜于处理
结果如下:
|
|
|
9
8
try/catch对性能有影响。 但这并不是一个巨大的影响。try/catch的复杂度通常是O(1),就像一个简单的赋值一样,除非它们被放置在循环中。所以你必须明智地使用它们。 Here 是关于try/catch性能的参考(虽然没有解释它的复杂性,但它是隐含的)。看看 部分 |
|
|
10
6
理论上,try/catch块不会对代码行为产生影响,除非实际发生异常。然而,在一些罕见的情况下,try/catch块的存在可能会产生重大影响,而在一些不常见但几乎不模糊的情况下,这种影响可能是显而易见的。原因是给定的代码如下所示:
现在存在一系列事件,其中statement3可以在没有执行statement2的情况下执行。即使代码中没有关于
|
|
|
11
4
看见 discussion on try/catch implementation 当没有异常发生时。特别是,我认为Windows 32位实现有很高的开销,而64位实现没有。 |
|
|
12
3
对
基准
首先,让我们使用一些复杂的工具(例如。
BenchmarkDotNet
).汇编为
分析一些补充说明。
代码大小
内联
. 在里面
完整测试代码
|
|
|
13
-2
我试了一次深捕。
结果是:
|
|
Sweepy Dodo · JSON lite的格式化 1 年前 |
|
|
giantjenga · 优化整数向量到二进制向量的转换 1 年前 |
|
Zegarek · Postgresql递归查询未提供预期结果 1 年前 |
|
|
Joe · 为什么这两个查询之间的性能存在如此大的差异? 2 年前 |
|
tic-toc-choc · 在`dplyr中高效使用列表进行过滤` 2 年前 |