In termini di allocazione della memoria e prestazioni, il primo snippet contiene un'assegnazione superflua della stringa vuota a q
prima di entrare nel ciclo.
Dal punto di vista delle prestazioni ciò non dovrebbe essere di alcuna importanza, ma dal punto di vista delle migliori pratiche di ingegneria del software, il secondo frammento è decisamente preferibile, poiché la variabile viene dichiarata nell'ambito in cui è usato.
La leggibilità e la manutenibilità sono molto più importanti delle prestazioni nella maggior parte degli scenari e, statisticamente parlando, le probabilità che la tua azienda sia un'eccezione a questa regola sono scarse.
La mia raccomandazione sarebbe di andare avanti e costruire il tuo prodotto software correttamente , e se si scopre che c'è un problema di prestazioni, (molto probabilmente non ci sarà essere qualsiasi,) quindi lancia il profiler per vedere esattamente dove si trova il problema, e una volta hai trovato i punti problematici, poi vai avanti e migliora solo quegli spot che necessitano miglioramenti.
Essere preoccupato per le prestazioni di ogni piccola piccola cosa da ogni parte, e modificare e hackerare le cose in modo proattivo qui e là solo per spremere i cicli di clock in modo cieco, senza avere alcuna idea se questi cicli di clock sono effettivamente necessari, non è modo di scrivere software.
I cicli di clock saranno sempre sprecati. Anche se hai abbandonato Visual Basic in favore di Assembly Language, presto scoprirai che è impossibile non sprecare cicli di clock. Il punto è preoccuparsi solo dei cicli di clock quando hai una buona ragione per farlo, e nella stragrande maggioranza dei casi non ne hai. Il software con prestazioni scadenti presenta scarso rendimento principalmente a causa di problemi algoritmici, non a causa della scarsa attenzione dei programmatori ai cicli di clock.
P.S.
Non so su Visual Basic, ma nella maggior parte dei linguaggi di programmazione decenti il compilatore è in grado di avvisarti se tenti di usare una variabile che non è ancora stata inizializzata, ma questa capacità del compilatore è compromessa dal pratica prevalente e molto fuorviante di inizializzare le variabili con valori predefiniti privi di senso come Dim q as String = ""
sopra. Quindi, ti consiglio di evitare Dim q as String = ""
come la peste.