Httpcontext.current.items est trop rapide pour accéder à l'élément, mais comment?
-
14-11-2019 - |
Question
J'ai écrit un test simple
- Ajouter 100 articles à [Collection
- Lire 1000000 fois à partir de [Collection] au hasard
Lorsque
- Collection] == httpContext.current.items Il faut 50 ms
- Collection] == httpruntime.cache cela prend 430 ms
- Collection] == HashTable || [Collection] == Dictionaty 170 ms
Je suppose que les frais généraux de httpruntime.cache sont synchronisés
J'essaie de modifier la capacité initiale de hachage / dictionnaire? Mais sans succès.
Est-ce que quelqu'un sait quelle est la raison de ce turbo httpcontext.current.items? Puis-je créer ce type d'objet à l'implémentation de cache personnalisé (bien sûr avec Sync Imply).
La solution
La raison pour laquelle le cache est lent est parce qu'il est Fitre en toute sécurité - Comme vous l'avez deviné.
Type sous-jacent pour HttpContext.Current.Items
est une plaine Hashtable
. Peut-être que si vous mettez un extrait de votre code, je serais en mesure d'expliquer la différence avec le 3ème élément.
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow