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.

questionAnswers(11)

yourAnswerToTheQuestion