Pergunta

O Visual Studio criará automaticamente o uso de instruções para você sempre que você criar uma nova página ou projeto. Alguns deles você nunca usará.

O Visual Studio tem o recurso útil para "remover as usinas não utilizadas".

Gostaria de saber se há algum efeito negativo no desempenho do programa, se as instruções que nunca forem acessadas, permanecerem mencionadas na parte superior do arquivo.

Foi útil?

Solução

Um uso não utilizado não tem impacto no desempenho do tempo de execução do seu aplicativo.

Pode afetar o desempenho do IDE e a fase geral de compilação. A razão é que ele cria um espaço para nome adicional no qual a resolução de nomes deve ocorrer. No entanto, estes tendem a ser pequenos e não devem ter um impacto notável na sua experiência de IDE para a maioria dos cenários.

Também pode afetar o desempenho da avaliação de expressões no depurador pelos mesmos motivos.

Outras dicas

Não, é apenas uma coisa de estilo de compilação/codificação. Os binários .NET usam nomes totalmente qualificados sob o capô.

O link a seguir Uma boa leitura sobre por que remover referências não utilizadas Explica como é útil remover referências não utilizadas do aplicativo.

Abaixo estão alguns trechos do link:

  1. Ao remover quaisquer referências não utilizadas em seu aplicativo, você está impedindo o CLR De carregar os módulos referenciados não utilizados em tempo de execução. O que significa que você reduzirá o tempo de inicialização do seu aplicativo, porque leva tempo para carregar cada módulo e evitar os metadados de carga do compilador que nunca serão usados. Você pode achar que, dependendo do tamanho de cada biblioteca, o tempo de inicialização é notavelmente reduzido. Isso não quer dizer que seu aplicativo seja mais rápido depois de carregado, mas pode ser bastante útil saber que seu tempo de inicialização pode ser reduzido.

  2. Outro benefício de remover quaisquer referências não utilizadas é que você reduzirá o risco de conflitos com os namespaces. Por exemplo, se você tem os dois System.Drawing e System.Web.UI.WebControls referenciado, você pode achar que obtém conflitos ao tentar fazer referência ao Image classe. Se você tem diretrizes em sua classe que correspondem a essas referências, o compilador não pode dizer qual dos que usam. Se você usar regularmente o preenchimento automático ao desenvolver, a remoção de namespaces não utilizados reduzirá o número de valores de conclusão automática no seu editor de texto conforme você digita.

Não há efeito na velocidade de execução, mas pode haver um pequeno efeito na velocidade/inteltisense de compilação, pois existem mais espaços nomes em potencial para procurar a classe adequada. Eu não me preocuparia muito com isso, mas você pode usar o item de menu Organize Usings para remover e classificar as instruções de uso.

O código que não é executado não afeta o desempenho de um programa.

Não, existem vários processos envolvidos ao compilar um programa. Quando o compilador começar a procurar referências (classes, métodos), ele usará apenas as usadas no código. A diretiva de uso diz apenas ao compilador para onde procurar. Muita coisa não utilizada usando a declaração talvez tenha um problema de desempenho, mas apenas no momento da compilação. Em tempo de execução, todo o código externo está devidamente vinculado ou incluído como parte do binário.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top