Je relativise... La moitié des théories sur la lenteur des langages managés sont grandement exagérées. Des fanboys sur des blogs qui font des tests bidons dans lesquels ils ne tiennent pas compte de la nature JIT (qui rend une fonction lente à la première exécution).
Ces comparaisons sont assez rarement objectives en fait, les gens qui les font essaient toujours de scier une techno par rapport à une autre. C'est un peu comme les débats linux vs windows qui mènent nulle part. Tu connais? :aie:
C'était un compromis entre la simplicité d'implémentation, la rétrocompatibilité et la fonctionnalité coté développeur. Et ça a effectivement des (gros) inconvénients, l'information de type pourrait permettre des optimisations quant aux vérifications de cast illégaux et tout ça... M'enfin.Citation:
Apparemment, il s'agit surtout ici de problèmes de boxing liés aux collections. Problèmes qui sont absents des collections génériques en .Net, donc le problème n'est pas du aux langages managés en général, mais aux insuffisances sémantiques de java...
De toutes façons, je pense sincèrement que question langage, C# est plusieurs kilomètres devant java. Les débats sur développez.com sur les comparaisons de technos finissent toujours en troll velu, encore une fois parce que les fanboys s'amusent à critiquer la techno *ennemie* :aie: en la mettant hors de son contexte d'utilisation.
Pour revenir à ça, il existe des implémentations de collections de primitifs qui évitent le boxing et la consommation mémoire importantes induites par les wrappers (Sachant qu'un wrapper = 8 bytes de header + taille du type + complément pour atteindre un multiple de 8). ça pousse un bête booléen de 1 byte en un objet de 16 bytes ce qui est assez violent comme perte. :aie:
En voici une pour les Arrays
http://commons.apache.org/primitives...ase/index.html
Celle-ci propose des matrices et des tables de hachages
http://acs.lbl.gov/~hoschek/colt/api...w-summary.html
Une autre implémentation intéressante d'une map et d'un set
http://github.com/alex14n/CompactHashMap/tree/master
J'ai hésité à proposer une entrée dans la faq, mais la dernière fois que j'ai essayé de contribuer à une faq ça a été ignoré...

