Dichiarando un nome di variabile, quanto (se non del tutto) impatto la lunghezza del suo nome ha per la memoria totale dell'applicazione? C'è comunque una lunghezza massima? O siamo liberi di elaborare le nostre variabili (e le istanze) quanto vogliamo?Il modo in cui il nome di una variabile ha un impatto sull'utilizzo della memoria di un'applicazione?
risposta
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.
+1 per considerare IL –
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 ... –
Il nome può essere parte dell'IL, ma in .NET almeno, il IL è JIT 'in linguaggio macchina, quindi ancora, nessun nome di variabile. –
Non ha alcun impatto in un linguaggio compilato.
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).
MSVC++ tronca i nomi delle variabili a 255 caratteri. La lunghezza del nome variabile non ha alcun impatto sulla dimensione del codice compilato.
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.
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.
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.
- 1. Il margine non ha impatto in "include"
- 2. Accesso valore della variabile in cui il nome della variabile viene memorizzato in una stringa in R
- 3. Modo programmatico per ottenere il nome della variabile in C?
- 4. AngularJS - bind ng-model a una variabile il cui nome è memorizzato all'interno di un'altra variabile
- 5. Passare il "nome" della variabile in C++
- 6. Come nome un file rubino di Rails il cui nome di classe ha numeri?
- 7. Ottieni il nome di una variabile locale
- 8. Come posso fare in modo che il logback legga un file delle proprietà il cui nome è una variabile?
- 9. Che impatto ha il target di build Android nell'APK finale?
- 10. Se il nome della variabile in qualsiasi linguaggio di programmazione richiede spazio di memoria
- 11. Contare il numero di istanze in cui una variabile o una combinazione di variabili sono TRUE
- 12. Un oggetto può ispezionare il nome della variabile a cui è stato assegnato?
- 13. Crea istanza di oggetto di una classe che ha il suo nome nella variabile stringa
- 14. di carico con il nome della variabile in Django
- 15. Ottenere il nome della variabile per NullReferenceException
- 16. Ottieni il nome della variabile. javascript "reflection"
- 17. Che impatto ha l'opzione -d64 sull'uso della memoria residente di Sun JVM?
- 18. Qual è il significato di $ in un nome di variabile?
- 19. Ottenere per riflessione il valore di una proprietà il cui getter ha un valore facoltativo
- 20. C'è un modo per accedere a una variabile javascript usando una stringa che contiene il nome della variabile?
- 21. Utilizzo della variabile ruby per il nome classe in HAML
- 22. Python: stampa il nome e il valore di una variabile?
- 23. La combinazione di una stringa con il valore di una variabile per essere il nome di un'altra variabile in EL
- 24. Ottieni il nome effettivo di una variabile Swift come stringa
- 25. nome di stampa della variabile in C#
- 26. Prendi il 'nome' di una variabile in Javascript
- 27. Dove ha preso il nome il segmento di testo?
- 28. Modo corretto per liberare la memoria di una variabile restituita
- 29. Il valarray ha un allineamento di memoria contiguo?
- 30. Come ottenere il nome della variabile in R (sostituto)?
+1 - stavo per chiederlo. – mauris