mercoledì 19 novembre 2008
Poco fa, collegandomi al mio account di Gmail, ho notato che è stata aggiunta una nuova funzionalità: il supporto ai temi, ovvero un insieme di layout predefiniti che permettono di cambiare l'aspetto della webmail, modificandone i colori e, in alcuni casi, anche aggiungendo immagini di sfondo. Personalmente, ormai sono abituato alla vecchia impostazione, che mi sembra semplice e funzionale, ma, come si dice, de gustibus non disputandum est...
Ieri ho portato una testimonianza di come l'utilizzo dello StringBuilder di .NET mi abbia consentito di migliorare sensibilmente le prestazioni di un algoritmo. Oggi la mia opera di ottimizzazione è proseguita, ed è toccato ad una routine Javascript, che creava una tabella HTML concatenando stringhe con, ahimé, l'operatore +. In questo caso la modifica dell'algoritmo è stata un filino più lunga, perché Javascript non include un oggetto analogo allo StringBuilder (o StringBuffer, secondo la terminologia Java). Ma è bastata una ricerca su CodeProject per trovare questo progetto, che fornisce uno StringBuilder per Javascript semplicissimo da usare e davvero efficiente.
Technorati Tag:
.NET,
Programming
Le stringhe in .NET sono oggetti immutabili, quindi se si devono concatenare insieme un numero elevato si stringhe, usare l'operatore + è inefficiente, perché ogni volta verrebbe creata in memoria una nuova stringa. Per ovviare al problema, si deve utilizzare l'oggetto StringBuilder che, come si legge su MSDN, rappresenta una sequenza mutabile di caratteri, quindi ad esso è possibile aggiungere, rimuovere, inserire o sostituire caratteri senza la necessità di istanziare un nuovo oggetto in memoria.
Questa è la favoletta che tutti noi conosciamo... Però quando oggi, facendo debug di codice scritto da altri, ho sostituito tutte le concatenazioni di stringhe con uno StringBuilder ed ho osservato che il tempo di esecuzione è passato da 2 minuti a 3 secondi scarsi, mi si sono illuminati gli occhi 