Fa differenza se ripulisco la mia clausola sugli usi se le unità rimosse sono ancora utilizzate in altre unità?

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

  •  11-09-2019
  •  | 
  •  

Domanda

Personalmente mi piace se il mio uses le clausole sono le più piccole possibile, ma in molte applicazioni le unità veramente grandi (in termini di rigonfiamento dell'eseguibile) come Forms O VirtualTrees sono comunque necessari in almeno un'altra unità.

COSÌ:Fa differenza se pulisco il mio uses clausole anche se alla fine nessuna unità viene rimossa dal progetto?Se è così:In quale modo?E:Sta pulendo il uses clausola qualcosa che dovrebbe essere fatto il prima possibile o si può aspettare finché non trovo per caso un'unità inutilizzata?

È stato utile?

Soluzione

Se è usato altrove nel progetto, non farà molta differenza, se non per produrre codice più pulito che è più facile da leggere. Ci sono un paio di cose minori che rischi di pregiudicare, però.

ordine di compilazione: Il compilatore decide cosa per compilare le unità in base al quale l'uso di unità quali unità. Se si rimuove un unità dalla clausola uses di un'unità precoce, che potrebbe causare l'unità utilizzata per essere compilato in seguito nel ciclo di compilazione. Questo potrebbe non sembrare molto, ma tenere a mente che di inizializzazione sezioni eseguito nello stesso ordine in cui le unità sono stati compilati. Questo in realtà non dovrebbe fare molta differenza per il vostro progetto, però.

CodeInsight: Quando si tira il completamento del codice a discesa, che offrirà scelte sulla base di tutte le unità attualmente disponibili. È possibile ridurre il numero di scelte che deve filtrare attraverso - e quindi la quantità di tempo necessaria per tirare la cosa sanguinosa up - riducendo il numero di unità che si sta utilizzando. (No, io non sono amaro. Perché me lo chiedi?)

Altri suggerimenti

In genere no. Se un'unità viene utilizzato una sola volta, in qualsiasi parte del progetto, non importa quante altre volte viene utilizzato. Al contrario, non importa quanti posti si rimuove un'unità da se è ancora usato almeno una volta da qualche parte. Il programma compilato si comporterà lo stesso, e avrà all'incirca le stesse dimensioni.

L'unica differenza sarebbe nell'ordine di inizializzare l'unità e sezioni finalizzazione. ORDINE-utilizzo influenza l'ordine di queste sezioni sono eseguite in, anche se l'effetto preciso non è mai stata documentata (quindi cercate di non fare affidamento su ordine inizializzazione).

Ma io ancora vi incoraggio a ripulire le vostre liste di unità, per lo stesso motivo siete incoraggiati a ripulire le vostre liste di variabili e le vostre liste di parametri. Quando si sbarazzarsi delle cose che non hai bisogno, rende più facile per leggere il codice che hai tenuto, perché si può essere ragionevolmente sicuri che quello che stai leggendo dà un quadro preciso di ciò che fa il codice. Se il codice parla di un gruppo di unità, ma mai realmente fa uso di essi, quindi la prossima volta che tu o qualcun altro guarda il codice, c'è un buon cambiamento si sta andando a trascorrere un po 'di tempo cercando di trovare dove il codice utilizza i servizi di tali unità. (Ti dici a te stesso: "Hmm, questo codice include Graphics, ma non riesco a vedere dove disegna nulla. Sarà meglio prendere un altro sguardo, perché io non credo che questo codice ha avuto alcuna responsabilità del genere. Hey , collega di lavoro? - si può richiedere un certo tempo fuori della vostra giornata di dirmi dove questa unità trae cose ")

Si C'è un trucco questo viene spesso trascurato e può morderti alle spalle:
Se ce n'è qualcuno inizializzazione/finalizzazione codice, esso viene sempre eseguito anche quando non c'è nessun codice chiamato altrimenti nella tua unità (e il l'unità è sempre inclusa mentre penseresti di no).Pertanto, rimuovere un'unità che non ti serve nel tuo progetto può fare una notevole differenza.

Un'altra cosa degna di nota è questa l'ordine delle unità determina quale identificatore verrà scelto dal compilatores quando ci sono omonimi in 2 unità diverse e le chiami senza prefisso con il nome dell'unità (cosa che dovresti sempre fare come migliore pratica).

Oltre a ciò, come hanno sottolineato Mason e Rob, l'ordine delle unità influisce sull'ordine in cui vengono compilate e sulla sequenza di inizializzazione/finalizzazione.

Per quanto riguarda l'analisi del codice, sarà più veloce se rimuovi le unità non necessarie, ma anche a livello globale se tutte le unità utilizzate nel progetto vengono aggiunte esplicitamente al dpr invece di fare affidamento sul percorso di ricerca per trovarle quando vengono aggiunte implicitamente tramite un altro unità.

I stronlgy d'accordo con Mason e Rob: si fa la differenza

!

Dipendenza riduzione.

La differenza non è nel progetto attuale, come spiegato da Mason e Rob. Invece, la differenza è nel progetto NEXT. Se si mantengono le unità (server) necessari nella vostra unità (client), quindi utilizzando tale unità cliente in un altro progetto tirerà nelle dipendenze pure. Se non ci sono altre unità client giustificati per le unità appena tirato in, gonfiare poi sono stati aggiunti.

Utilizza il Free Pascal Analyzer per scoprire unità non utilizzate nel codice.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top