2009-03-13 7 views

risposta

20

Dipende dalla lingua, in realtà.

Se si utilizza C++ o C, non ha alcun impatto.

Se si utilizza un linguaggio interpretato, si passa il codice sorgente in giro, quindi può avere un impatto drammatico.

Se si utilizza un linguaggio compilato che compila in un linguaggio intermedio, come Java o uno qualsiasi dei linguaggi .NET, in genere i nomi delle variabili, i nomi delle classi, i nomi dei metodi, ecc. Fanno tutti parte dell'IL. Avere nomi di metodi più lunghi avrà un impatto. Tuttavia, se in seguito si esegue un obfuscator, questo scompare, poiché l'obfuscator rinominerà tutto in nomi tipicamente molto brevi. Questo è il motivo per cui l'offuscamento dà spesso impatti sulle prestazioni.

Tuttavia, suggerisco caldamente di utilizzare nomi di variabili/metodi/classi lunghi e descrittivi. Questo rende il tuo codice comprensibile, manutenibile e leggibile - a lungo termine, che supera di gran lunga qualsiasi lieve perf. beneficio.

+0

+1 per considerare IL –

+0

IL è troppo importante da ignorare. Java, C#, VB.Net sono quelli a cui si pensa, ma anche python non è interpretato, ha la sua forma di IL ... –

+0

Il nome può essere parte dell'IL, ma in .NET almeno, il IL è JIT 'in linguaggio macchina, quindi ancora, nessun nome di variabile. –

5

Non ha alcun impatto in un linguaggio compilato.

0

In lingue compilate, quasi certamente no; tutto diventa un simbolo in una tabella dei simboli. Nei linguaggi interpretati, la risposta è anche no, con alcune eccezioni estremamente rare (in alcune versioni precedenti di Python ci sarebbe una differenza, per esempio).

0

MSVC++ tronca i nomi delle variabili a 255 caratteri. La lunghezza del nome variabile non ha alcun impatto sulla dimensione del codice compilato.

0

Come indicato da altri, i nomi delle variabili scompaiono nelle lingue compilate. Credo che i nomi delle variabili locali in .Net possano essere scartati. Ma in generale, anche in un linguaggio interpretato, il consumo di memoria dei nomi di variabili è trascurabile, specialmente alla luce dei vantaggi dei buoni nomi di variabili.

0

In realtà nei nomi di variabili lunghe ASP.NET per controlli e pagine master si aggiunge alla dimensione dell'HTML generato. Ciò aggiungerà un po 'di memoria extra insignificante per tamponare il flusso di output, ma l'effetto sarà più notato negli extra-poche centinaia di byte che invierai sulla rete.

0

In Python, i nomi sembrano essere raccolti in un numero di semplici tabelle; ogni nome appare esattamente una volta in ogni oggetto codice. I nomi non hanno alcun impatto sulle prestazioni.

Per scopi statistici, ho esaminato una funzione a 20 righe che era una soluzione al problema di Project Euler 15. Questa funzione ha creato un oggetto codice a 292 byte. Ha usato 7 nomi distinti nella tabella dei nomi. Dovresti usare nomi di variabili di 41 caratteri per raddoppiare la dimensione del file di codice byte.

Questo sarebbe l'unico impatto: nomi follemente grandi potrebbero rallentare il tempo di caricamento del modulo.

Problemi correlati