Por que os blocos experimentais são caros?
Eu ouvi o conselho que você deve evitar tentar pegar bloqueios, se possível, uma vez que eles são caros.
Minha pergunta é especificamente sobre a plataforma .NET: Por que os blocos de teste são caros?
Resumo das Respostas:
Há claramente dois campos sobre esta questão: aqueles que dizem que os blocos experimentais são caros, e aqueles que dizem "talvez um pouquinho".
Aqueles que dizem que os blocos try são caros normalmente mencionam o "alto custo" de desenrolar a pilha de chamadas. Pessoalmente, não estou convencido por esse argumento - especialmente depois de ler sobre como os manipuladores de exceções são armazenadosAqui.
Jon Skeet participa do acampamento "talvez um pouquinho" e escreveu dois artigos sobre exceções e desempenho que você pode encontrarAqui.
Houve um artigo que achei extremamente interessante: ele falou sobre "outras" implicações de desempenho de blocos try (não necessariamente memória ou consumo de CPU). Peter Ritchie menciona que ele descobriu que o código dentro de blocos try não é otimizado como seria de outra forma pelo compilador. Você pode ler sobre suas descobertasAqui.
Finalmente, há uma entrada de blog sobre o problema do homem que implementou exceções no CLR. Vá dar uma olhada no artigo de Chris BrummeAqui.