Bienvenue à Blogs CodeS-SourceS Identification | Inscription | Aide

Next Informatik Xperience

Informatique, technologie et développement
.: Blog d'un MSP :.
Astuce : Sérializer un tableau d'object, quel type de tableau choisir?

Comme celà fait quelques temps que je n'ai pas posté sur le développement je vais vous faire part ici d'une petite étude que je viens de faire concernant la sérialisation binaire de tableaux d'object.

Tout d'abord de quoi parle-ton?

Imaginer dans une application que vous ayez besoin de stocker des données de types trés variés (ou inconnu au moment de la conception : dans une library par exemple). Vous avez la possibilité d'utilisé principalement trois types :

  • List<object>
  • ArrayList
  • object[]

Les deux premiers ayant l'avantage d'être dynamique (il est possible de rajouter/enlever des éléments à souhaits)

Mettons maintenant que pour une raison x ou y, vous aillez besoin de sérializer binairement votre tableau. Je pense qu'un des facteurs de choix pourra alors être la taille de l'objet une fois sérialisé. Notamment si celui-ci doit être transmit par le réseau par exemple.

J'ai donc réalisé un petit bench pour mesurer la taille prise par des tableaux de dimensions identique (et contenant les mêmes données).

Voici le tableau récapitulatif (données affichées en octets) :

  4 els. 16 els. 64 els. 256 els. 1024 els. 2048 els.
List<object> 236 524 932 2564 9092 17796
ArrayList 137 425 833 2465 8993 17696
object[] 59 347 755 2387 8915 17619

 

On peut donc noter que :

List<object> prend 99 octets de plus que ArrayList, ArrayList prend 78 octets de plus que object[]. Et enfin List<object> prend 177 octets de plus que  object[].

Bien entendu ce facteur n'est pas le seul à prendre en compte de la cadre de la conception d'un logiciel. Il faut aussi tenir compte des coûts en temps pour le traitement et l'utilisation des différents types en fonction de leurs contraintes.

Sur ce, Happy Coding!

Ce post vous a plu ? Ajoutez le dans vos favoris pour ne pas perdre de temps à le retrouver le jour où vous en aurez besoin :
Posted: jeudi 13 décembre 2007 08:00 par wizad
Classé sous : ,

Commentaires

Pas de commentaires

Les commentaires anonymes sont désactivés

Les 10 derniers blogs postés

- [SharePoint] Les sessions TechDays 2012… par Le blog de Patrick [MVP SharePoint] le il y a 6 heures et 39 minutes

- TechDays Paris 2012 : Session pleinière jour 3 par Blog Technique de Romelard Fabrice le 02-09-2012, 11:01

- Mishra Reader : un lecteur RSS très Zune Style en Open Source ! par Cyril Sansus le 02-09-2012, 08:28

- [framework 4] Les Tasks et le Thread UI par Fathi Bellahcene le 02-09-2012, 00:33

- Workflow Foundation 3 a un pied dans la tombe par Blog de Jérémy Jeanson le 02-08-2012, 22:15

- TechDays Paris 2012 : Nouvelles tendances du poste de travail - Bring Your own PC par Blog Technique de Romelard Fabrice le 02-08-2012, 19:42

- TechDays Paris 2012 : System Center Service Manager 2012 Vue d’ensemble par Blog Technique de Romelard Fabrice le 02-08-2012, 17:32

- TechDays Paris 2012 : Pleinière second jour par Blog Technique de Romelard Fabrice le 02-08-2012, 16:23

- TechDays Paris 2012 : Retour d'expérience sur la mise en place d'un Cloud Privé par Blog Technique de Romelard Fabrice le 02-08-2012, 16:04

- TechDays Paris 2012 : Comment SharePoint a sauvé mes TechDays par Blog Technique de Romelard Fabrice le 02-07-2012, 23:59