Salut, Java 1.5 a introduit des classes telles que la
ConcurrentHashMap, qui semble pouvoir remplacer une
Collections.synchronizedMap(new HashMap()) a merveille,
mais ca me fait un peu peur, y a t'il des précautions a prendre,
des différences de comportement a attendre ?
merci
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
TestMan
Bonjour,
Je dirais : - c'est compatible multi-fils - c'est plus lent que le HashMap tout court( à vérifier )
Sinon, celà serait interessant de tester les différences de performance entre un Hashtable et un syncrhonized HashMap ! Un volontaire ? ;-)
A+
TM
Salut, Java 1.5 a introduit des classes telles que la ConcurrentHashMap, qui semble pouvoir remplacer une Collections.synchronizedMap(new HashMap()) a merveille, mais ca me fait un peu peur, y a t'il des précautions a prendre, des différences de comportement a attendre ? merci
Bonjour,
Je dirais :
- c'est compatible multi-fils
- c'est plus lent que le HashMap tout court( à vérifier )
Sinon, celà serait interessant de tester les différences de performance
entre un Hashtable et un syncrhonized HashMap ! Un volontaire ? ;-)
A+
TM
Salut, Java 1.5 a introduit des classes telles que la
ConcurrentHashMap, qui semble pouvoir remplacer une
Collections.synchronizedMap(new HashMap()) a merveille,
mais ca me fait un peu peur, y a t'il des précautions a prendre,
des différences de comportement a attendre ?
merci
Je dirais : - c'est compatible multi-fils - c'est plus lent que le HashMap tout court( à vérifier )
Sinon, celà serait interessant de tester les différences de performance entre un Hashtable et un syncrhonized HashMap ! Un volontaire ? ;-)
A+
TM
Salut, Java 1.5 a introduit des classes telles que la ConcurrentHashMap, qui semble pouvoir remplacer une Collections.synchronizedMap(new HashMap()) a merveille, mais ca me fait un peu peur, y a t'il des précautions a prendre, des différences de comportement a attendre ? merci
Mike Baroukh
Bonjour.
J'ai fait il y a quelques temps des tests comparatifs et 1/ La différence avec Hashmap n'est pas évidente. 2/ C'est effectivment un peu plus rapide qu'une hashmap sychronisée. (désolé, je ne peux pas etre plus précis).
L'explication de ces deux points, si j'ai bien compris, est que les données sont découpés en un certain nombre de blocs (16 je crois) et que la synchronisation est par bloc. Ainsi, 2 get/put portant sur des blocs différents ne seront pas synchronisés.
Pour info, j'ai utilisé les ConcurrentHashMap car j'avais des bugs sous charges élevées, des bouts de code de HashMap tournaient en rond (sur de la lecture) sans jamais rendre la main parce qu'un autre thread avait mis à jour la map.
bref, j'utilise à présent systématiquement les ConcurrentHashMap en lieu et place des HashMap.
Bonjour,
Je dirais : - c'est compatible multi-fils - c'est plus lent que le HashMap tout court( à vérifier )
Sinon, celà serait interessant de tester les différences de performance entre un Hashtable et un syncrhonized HashMap ! Un volontaire ? ;-)
A+
TM
Salut, Java 1.5 a introduit des classes telles que la ConcurrentHashMap, qui semble pouvoir remplacer une Collections.synchronizedMap(new HashMap()) a merveille, mais ca me fait un peu peur, y a t'il des précautions a prendre, des différences de comportement a attendre ? merci
Bonjour.
J'ai fait il y a quelques temps des tests comparatifs et
1/ La différence avec Hashmap n'est pas évidente.
2/ C'est effectivment un peu plus rapide qu'une hashmap sychronisée.
(désolé, je ne peux pas etre plus précis).
L'explication de ces deux points, si j'ai bien compris, est que les
données sont découpés en un certain nombre de blocs (16 je crois) et que
la synchronisation est par bloc. Ainsi, 2 get/put portant sur des blocs
différents ne seront pas synchronisés.
Pour info, j'ai utilisé les ConcurrentHashMap car j'avais des bugs sous
charges élevées, des bouts de code de HashMap tournaient en rond (sur de
la lecture) sans jamais rendre la main parce qu'un autre thread avait
mis à jour la map.
bref, j'utilise à présent systématiquement les ConcurrentHashMap en lieu
et place des HashMap.
Bonjour,
Je dirais :
- c'est compatible multi-fils
- c'est plus lent que le HashMap tout court( à vérifier )
Sinon, celà serait interessant de tester les différences de performance
entre un Hashtable et un syncrhonized HashMap ! Un volontaire ? ;-)
A+
TM
Salut, Java 1.5 a introduit des classes telles que la
ConcurrentHashMap, qui semble pouvoir remplacer une
Collections.synchronizedMap(new HashMap()) a merveille,
mais ca me fait un peu peur, y a t'il des précautions a prendre,
des différences de comportement a attendre ?
merci
J'ai fait il y a quelques temps des tests comparatifs et 1/ La différence avec Hashmap n'est pas évidente. 2/ C'est effectivment un peu plus rapide qu'une hashmap sychronisée. (désolé, je ne peux pas etre plus précis).
L'explication de ces deux points, si j'ai bien compris, est que les données sont découpés en un certain nombre de blocs (16 je crois) et que la synchronisation est par bloc. Ainsi, 2 get/put portant sur des blocs différents ne seront pas synchronisés.
Pour info, j'ai utilisé les ConcurrentHashMap car j'avais des bugs sous charges élevées, des bouts de code de HashMap tournaient en rond (sur de la lecture) sans jamais rendre la main parce qu'un autre thread avait mis à jour la map.
bref, j'utilise à présent systématiquement les ConcurrentHashMap en lieu et place des HashMap.
Bonjour,
Je dirais : - c'est compatible multi-fils - c'est plus lent que le HashMap tout court( à vérifier )
Sinon, celà serait interessant de tester les différences de performance entre un Hashtable et un syncrhonized HashMap ! Un volontaire ? ;-)
A+
TM
Salut, Java 1.5 a introduit des classes telles que la ConcurrentHashMap, qui semble pouvoir remplacer une Collections.synchronizedMap(new HashMap()) a merveille, mais ca me fait un peu peur, y a t'il des précautions a prendre, des différences de comportement a attendre ? merci