Around and About .NET World

Il blog di Marco Minerva
posts - 1671, comments - 2232, trackbacks - 2135

My Links

News

Contattami su Live Messenger:


MCTS: Windows, Web, Distributed Applications & SQL Server

MCPD: Enterprise Applications

Tag Cloud

Archives

Post Categories

Links

Quando utilizzare StringBuilder

Recentemente mi è stato chiesto quando conviene utilizzare uno StringBuilder piuttosto che concatenare le stringhe con il +. L'argomento è stato affrontato più volte, ma credo sia comunque utile riportare quando dice MSDN, in modo da chiarire la situazione:

String objects are immutable in that they cannot be changed once created. Methods that act on strings actually return new string objects. Therefore, for performance reasons, large amounts of concatenation or other involved string manipulation should be performed with the StringBuilder class.

 

Technorati Tags: , , , ,

Print | posted on domenica 29 giugno 2008 17:09 | Filed Under [ C# VB .NET .NET Compact Framework ADO .NET & SQL ASP .NET .NET 3.0 ]

Feedback

Gravatar

# re: Quando utilizzare StringBuilder

c'e' però da dire che se le concatenzazioni sono esegute tutte insieme vi sono delle ottimizzazioni eseguite dal compilatore o a runtime (non mi ricordo :( ) che abbattono notevolmente i problemi di performance,
quindi in questo caso non è necessario scomodare lo string builder
29/06/2008 23:15 | marco
Gravatar

# re: Quando utilizzare StringBuilder

Hai pienamente ragione, ma se leggi bene quanto ho riportato da MSDN, troverai che si parla di "large amounts of concatenation", quindi esattamente quello che hai detto tu!
30/06/2008 12:13 | Marco Minerva
Gravatar

# re: Quando utilizzare StringBuilder

Poco tempo fa mi capitò di dover sviluppare un parser per un sottoinsieme di XML, da usare in un software per un dispositivo embedded con runtime MONO. Inizialmente scrissi lo Scanner facendo le concatenazioni delle stringhe con + (quindi ad ogni + veniva allocata una nuova stringa). Non appena ho inserito lo StringBuilder al posto dei "+" , dai test dei tempi risulto' un incremento delle prestazioni davvero significativo. Quindi penso che a seconda delle performance che si vogliono avere utilizzare lo StringBuilder sia davvero inevitabile. Per farvi un idea del miglioramento delle prestazioni leggete questo post:
http://www.c-sharpcorner.com/UploadFile/mahesh/StringBuilderComp11232005235258PM/StringBuilderComp.aspx
30/06/2008 21:43 | Fabio
Comments have been closed on this topic.

Powered by:
Powered By Subtext Powered By ASP.NET