Massimo Prota's BLog

Nothin' but .NET
posts - 46, comments - 37, trackbacks - 5

My Links

News

View Massimo Prota's profile on LinkedIn Rapid Circle

Archives

Post Categories

Blogs

Links

System.Buffer e array molto grandi

Oggi è comparso sul blog di Francesco Balena è comparso un quiz-post e, forte dell'esperienza con i Quiz Sharp di Adrian , ho deciso di provarci.

Siccome si parlava di Array e performance mi è subito venuta in mente la classe System.Buffer incontrata per caso una sera girovagando in Reflector e credo sconosciuta ai più.

Come dice MSDN:
 This class provides better performance for manipulating primitive types than similar methods in the System.Array class

Ho pensato allora che poteva proprio fare al caso mio e ho buttato giù 3 righe di codice per verificare effettivamente l'incremento delle performance e in effetti ci ho preso
Per tutti i dettagli e le interessanti osservazioni che ne sono emerse rimando ai commenti del post.

Una cosa che credo sia interessante riportare è la possibilità di lavorare in modalità unsafe per avere maggiori performance quando si lavora con gli array, in un commento al post ho riportato una possibile funzione per quel caso, adattando un articolo di MSDN: How to: Use Pointers to Copy an Array of Bytes
Questa tecnica può essere molto utile non solo quando bisogna copiare array, ma anche quando bisogna confrontarli e questo anche in riferimento a una discussione di qualche tempo fa sui ng alla quale ero intervenuto dove si chiedeva quale fosse il modo più efficiente per confrontare due array di byte.

Comunque si parla di migliaia di iterazioni su array che contengono molte migliaia di elementi, se non si hanno queste esigenze il caro vecchio ciclo for può andare più che bene.

Print | posted on venerdì 20 maggio 2005 03:13 |

Comments have been closed on this topic.

Powered by:
Powered By Subtext Powered By ASP.NET