Est-ce une supposition juste que dans la récupération/recherche d'implémentation v8 est O (1)?
(Je sais que la norme ne garantit pas cela)
Est-ce une supposition juste que dans la récupération/recherche d'implémentation v8 est O (1)?
Oui. V8 utilise une variante des tables de hachage qui ont généralement une complexité O(1)
pour ces opérations.
Pour plus de détails, vous voudrez peut-être consulter https://codereview.chromium.org/220293002/ où OrderedHashTable
est implémenté en fonction de https: // wiki .mozilla.org/Utilisateur: Jorend/Deterministic_hash_tables .
Pour les gens qui ne veulent pas creuser trop profondément dans le terrier du lapin:
1: Nous pouvons supposer que les bonnes implémentations de table de hachage ont pratiquement O(1) complexité en temps).
2: Voici un blog publié par l'équipe V8 qui explique comment une certaine optimisation de la mémoire a été effectuée sur son implémentation de la table de hachage pour Map
, Set
, WeakSet
et WeakMap
: Optimisation des tables de hachage: masquage du code de hachage
Basé sur 1 et 2: la complexité temporelle de l'ensemble et de la carte get
& set
& add
& has
est pratiquement O (1).