Je suis en train de faire un gros traitement (construction d'indices inverses) en utilisant ints/longs en Java.multimap primitif en java avec de bonnes caractéristiques de performance (insertion, itération)
J'ai déterminé que (un) boxe des cartes java.collections standard prend une grande partie du temps de traitement total. (par rapport à une implémentation similaire utilisant des tableaux, que je ne peux pas utiliser en raison de contraintes de mémoire).
Je suis à la recherche d'une rapide mise en œuvre 3ème partie (ou toute mise en œuvre du tout d'ailleurs) qui pourrait soutenir la structure suivante:
Carte avec des caractéristiques:
dans la carte -Les clés sont clairsemés (+/- 10.000.000 clés dans la plage [0,2^64] -les valeurs sont toujours ajoutées à la fin de la liste -insertion rapide (amortissement O (1) si possible) -fixe itération dans la clé
J'ai regardé trove, fastuti l, etc. mais n'a pas pu trouver une implémentation multimap en utilisant des primitives (seulement des cartes normales)
toute aide est appréciée.
Merci, Geert-Jan
est perdu: Carte –
Quel type d'API vous attendriez d'avoir des valeurs de toute clé donnée? Ou seriez-vous simplement en train de faire des requêtes contenant (clé, valeur)? –
Je pense que l'insertion O (1) amortie et l'itération rapide dans l'ordre des clés se contredisent, ou vous avez besoin d'un hachage qui maintient l'ordre des clés, ce qui serait mauvais si votre table de hachage est plus petite que la clé. –