Performance entre ArrayList et une collection personalisé

Résolu
cs_rodcobalt22 Messages postés 193 Date d'inscription dimanche 10 février 2002 Statut Membre Dernière intervention 16 février 2016 - 3 août 2007 à 12:18
cs_rodcobalt22 Messages postés 193 Date d'inscription dimanche 10 février 2002 Statut Membre Dernière intervention 16 février 2016 - 4 août 2007 à 13:10
Bonjour,
j'aimerai avoir un avis fiable sur la différence de performance entre une ArrayList et une classe héritant de CollectionBase.

Sachant que l'ArrayList contient d'autre Arraylist et que la collection obéira au même shémas.

Je vous remercie de m'expliquer la différence de perfomance s'il y a lieu.

6 réponses

cs_coq Messages postés 6349 Date d'inscription samedi 1 juin 2002 Statut Membre Dernière intervention 2 août 2014 101
4 août 2007 à 01:14
Salut,

La collection fortement typée basée sur CollectionBase est plus là pour :
- "sécuriser" un peu en n'exposant que les fonctionnalité souhaités et en vérouillant le type (tant classe qu'interface etc) d'élément qui peuvent être ajoutés
- améliorer la lisibilité et la comprehension du code "client" en lui même, en évitant d'avoir les casts dans celui ci
que pour changer les choses niveau performance.
Pour celà il faudrait sans doute redescendre d'un niveau et fournir une classe implémentant au moins les interfaces IList, ICollection et IEnumerable.
En gros, refaire l'ArrayList en la typant en en gérant le tableau interne directement dans le type voulu.

/*
coq
MVP Visual C#
CoqBlog
*/
3
cs_Bidou Messages postés 5487 Date d'inscription dimanche 4 août 2002 Statut Membre Dernière intervention 20 juin 2013 61
3 août 2007 à 13:28
CollectionBase ?? Que de bons vieux souvenirs
Dans le framework 2, on utilise maintenant des Generics... Le gros avantages c'est que tu as des collections typées (type safe) et que tu n'es pas tout le temps obligé de caster (voire boxer) comme c'était le cas avec les ArrayList et autre CollectionBase...

Tu peux faire un petit test, tu verras certainement rapidement la différence en une ArrayList et un Generics...

<hr />
-Blog-
0
cs_rodcobalt22 Messages postés 193 Date d'inscription dimanche 10 février 2002 Statut Membre Dernière intervention 16 février 2016
3 août 2007 à 14:53
Merci beaucoup pour la précision au niveau de frame work 2.
Malheuresement, suite à l'oublie d'une présicion de ma part, je suis sous le Frwk 1.1.
Donc à partir de là quelqu'un serait me spécifier laquelle des solutions est la plus rapide ?
0
cs_Bidou Messages postés 5487 Date d'inscription dimanche 4 août 2002 Statut Membre Dernière intervention 20 juin 2013 61
3 août 2007 à 15:51
Si mes souvenirs sont bons, CollectionBase travail avec une ArrayList en interne, donc vraisemblablement que les performences sont +/- identiques. Le mieux est encore de faire un petit bench pour avoir des certitudes....

<hr />
-Blog-
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_rodcobalt22 Messages postés 193 Date d'inscription dimanche 10 février 2002 Statut Membre Dernière intervention 16 février 2016
3 août 2007 à 16:22
T'es souvenir sont relativement exacte, réflector m'a permis de voir qu'en faite CollectionBase contient une propriété nommé "InnerList" qui n'est autre qu'une .......... ARRAYLIST.
En faite, la collection (classe héritant de collection base) wrappe les méthodes d'une arraylist.
Donc, normalement, l'Arraylist reste plus performante pourtant .....
C'est fait une appli qui charge 1000 instance de d'un classe personalisé (Contenant une chaine taille à peu près indentique, une entier, une image 20*20).
Les perf semble être meilleur coté Arraylist en chargement, mais coté accès c'est la collection qui l'emporte. Mais les perf ne différent pas des masses entre elles.

Bref, à moin qu'un spécialiste me donne une réponse précise et fondé je reste sur ton avis et celui du prog c'est à dire ......

C'est kif kif ;)
0
cs_rodcobalt22 Messages postés 193 Date d'inscription dimanche 10 février 2002 Statut Membre Dernière intervention 16 février 2016
4 août 2007 à 13:10
Merci cocq,

à chaque fois j'oublie l'optimisation de par les interfaces. Pourtant tu me l'avais déjà dit (...).
Enfin, merci beaucoup pour cette réponse.
Je vais construire cette classe quand j'aurais un moment et peut être la poster sur le forum. Tu me donneras ton avis.
Bon Week.

Rodrigue
0
Rejoignez-nous