Buffer et allocation mémoire
Bonjour,
Très gros volume à traiter.
Au départ j'utilisais des MemoryStream (avec using ect..). Après quelques minutes j'avais un out of memory exception. J'explose la mémoire car le GC ne libère pas assez vite. Si je force le GC ça marche mais ça devient très très lent. C'est un comportement connu voir the thread par exemple
Maintenant je réfléchi sur l'utilisation de MemoryMappedFile et MemoryMappedViewAccessor.ReadArray<T>.
ReadArray<T> nécessite un array pour stocker le résultat et allou un nouvelle espace mémoire.
Pour eviter d'allouer trop d'espace je voudrais pouvoir faire :
byte[] bufferOfByte = new byte[500];
Donc j'ai réservé 500 octets.
et ensuite si j'ai besoin d'un autre autre tableau
byte[] arrByte = new byte[30];
mais que les 30 octects ne soit pas une nouvelle allocation mémoire mais adresse les 30 premiers octets de bufferOfByte.
Est-ce possible en dotnet (c#) ?
Merci