Faz alguma diferença se eu limpar meu cláusula de usos se as unidades removidas ainda são usados ??em outras unidades?

StackOverflow https://stackoverflow.com/questions/763862

  •  11-09-2019
  •  | 
  •  

Pergunta

Pessoalmente eu gosto que meus cláusulas uses são tão pequenos quanto possível, mas em muitas aplicações são necessários os realmente grandes unidades (em termos de inchaço executável) como Forms ou VirtualTrees em pelo menos uma outra unidade de qualquer maneira.

Assim: Faz alguma diferença se eu limpar meus cláusulas uses mesmo se, no final, nenhuma unidade é removido do projeto? Se assim for, de que maneira? E: é a limpeza da cláusula algo uses que deve ser feito o mais cedo possível ou pode esperar até que eu encontre uma unidade não utilizada por acaso?

Foi útil?

Solução

Se ele é usado em outras partes do projeto, ele não vai fazer muita diferença, exceto para um código mais limpo produto que é mais fácil de ler. Há algumas pequenas coisas que podem afetar, no entanto.

ordem de compilação: O compilador decide o fim de unidades de compilação na base em que unidades usar quais unidades. Se você remover uma unidade da cláusula de usos de uma unidade precoce, que pode causar a unidade usada para ser compilado mais tarde no ciclo de compilação. Isso pode não parecer muito, mas tenha em mente que inicialização seções correr na mesma ordem que as unidades foram compilados. Isso realmente não deve fazer muita diferença para seu projeto, no entanto.

CodeInsight: Quando você puxar para cima a conclusão de código drop-down, que vai oferecer escolhas baseadas em todas as unidades disponíveis no momento. Você pode reduzir o número de opções que tem para filtro através - e, assim, a quantidade de tempo que leva para puxar a coisa sangrenta-se - através da redução do número de unidades que você está usando. (Não, eu não sou amargo. Por que pergunta?)

Outras dicas

Geralmente não. Se a unidade for usada uma vez, em qualquer lugar no projeto, não importa quantas vezes mais ele é usado. Por outro lado, não importa quantos lugares você remover uma unidade de se ele ainda é usado pelo menos uma vez em algum lugar. O programa compilado irá se comportam da mesma, e terá aproximadamente o mesmo tamanho.

A única diferença seria na ordem de seções de inicialização unidade e finalização. fim Unit-uso afeta a ordem dessas seções são executadas em, embora o efeito preciso nunca foi documentado (de modo a tentar não depender de ordem de inicialização).

Mas eu ainda incentivá-lo a limpar suas listas de unidade, pela mesma razão você é encorajado a limpar suas listas de variáveis ??e suas listas de parâmetros. Quando você se livrar das coisas que você não precisa, torna-se mais fácil de ler o código você manteve porque você pode estar razoavelmente confiantes de que o que você está lendo dá uma imagem precisa do que o código faz. Se o seu código menciona um monte de unidades, mas nunca realmente faz uso deles, então da próxima vez que você ou alguém olha para o código, há uma boa mudança que você está indo para passar algum tempo tentando descobrir onde o seu código utiliza as instalações dessas unidades. (Você vai dizer para si mesmo, "Hmm, este código inclui Graphics, mas eu não consigo ver onde ele desenha nada. Eu tomaria melhor um outro olhar, porque eu não acho que este código tinha quaisquer responsabilidades como essa. Hey , colega de trabalho - você pode levar algum tempo fora do seu dia para me dizer onde esta unidade chama as coisas ")

?

Sim, existe Um truque que muitas vezes é esquecido e pode vir morder-lhe nas costas:
Se houver algum inicialização / finalização código, ele é sempre executado , mesmo quando não existe um código chamado de outra maneira em sua unidade (e o unidade está sempre incluído enquanto você pensaria que não seria). Assim, a remoção de uma unidade que você não precisa em seu projeto pode fazer uma diferença notável.

Outra pena coisa de nota é que a ordem das unidades determina qual identificador a escolha do compilador é quando há homônimos no 2 unidades diferentes e você chamá-los sem prefixar com o nome da unidade (que você deve sempre fazer como uma boa prática).

Além disso, como Mason e Rob apontou, as unidades encomendar impactos a ordem em que eles são compilados e a seqüência de inicialização / finalização.

Como para o insight de código, ele será mais rápido se você remover unidades desnecessárias, mas também a nível mundial, se todas as suas unidades usadas no projeto são adicionadas explicitamente ao DPR em vez de confiar no caminho de busca para encontrá-los quando eles estão implicitely adicionados através de outra unidade.

Eu stronlgy discordar Mason e Rob: isso faz uma diferença

redução de dependência.

A diferença não está no projeto atual como explica Mason e Rob. Em vez disso, a diferença está em seu próximo projeto. Se você manter as unidades desnecessárias (servidor) em sua unidade (cliente), em seguida, usando essa unidade cliente em outro projeto irá puxar as dependências também. Se não há outras unidades de cliente justificados para as unidades apenas puxados, inchaço depois de ter adicionado.

Use a livre Pascal Analyzer para descobrir unidades não utilizadas em seu código.

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