Nous lisons des fichiers volumineux dans memorystream et les réutilisons dans plusieurs emplacements du code. Je me demandais simplement si c'était une meilleure idée d'obtenir des octets [] de fichiers et de les stocker dans une hashtable pour un tel scénario. De cette façon, nous pourrions fermer le flux de mémoire lorsque nous aurons terminé et en recréer un de la hashtable si nécessaire. Je me demande simplement s'il y a des inconvénients avec cette méthode. Merci NCache octet [] dans une table de hachage vs MemoryStreams
Répondre
Un avantage d'utiliser un byte[]
plutôt qu'un MemoryStream
est que le MemoryStream
a plus d'état - il a un curseur. En particulier, deux threads pourraient facilement lire à partir du même tableau d'octets (en copiant la section qui les intéresse, etc.) alors que s'ils essayaient d'utiliser simultanément Stream.Read
, ils pourraient ne pas obtenir les résultats attendus.
L'inconvénient de ces deux est qu'ils sont mutable :(
Je me demandais s'il y a des inconvénients avec cette méthode.
Pour énormes fichiers? Quelle est la taille "énorme"? Combien de mémoire principale pouvez-vous utiliser?
100 Mo, 200 Mo pour l'instant, nous traitons –
Si les fichiers sont vraiment grand, alors vous êtes mieux de ne pas les garder en mémoire en premier lieu. Vous devriez plutôt être en les lisant au fur et à mesure des besoins, afin de réduire l'utilisation de la mémoire
- 1. Table de hachage vs Liste de hachage vs Hash tree?
- 2. table de hachage dans Rails
- 3. Mise à jour des données mises en cache dans une table de hachage
- 4. fonction de hachage simple (sortie 1 octet d'entrée de chaîne)
- 5. Ajouter à une table de hachage
- 6. Comment créer une table de hachage en C++?
- 7. Tables de hachage chaînées vs tables de hachage ouvertes-ouvertes
- 8. cache physique vs cache logique
- 9. Table de hachage bidirectionnelle dans Erlang
- 10. Construction d'une table de hachage/fonction de hachage
- 11. Cache personnel vs Memcache?
- 12. Programme de création d'une table de hachage
- 13. WPF, liaison bidirectionnelle à une table de hachage
- 14. Créer une table de hachage avec deux tableaux
- 15. Utiliser une table de hachage pour créer un tableau illimité
- 16. Vous cherchez une table de hachage accessible par le réseau
- 17. Améliorer le cache de table dans mySQL
- 18. meilleure façon d'offrir une table de hachage statique C#
- 19. VS 2008 Débogage: CrystalReports Cache
- 20. Récupérer toutes les clés dans une table de hachage dans une chaîne
- 21. Table de hachage bidirectionnelle efficace en Python?
- 22. Raison du tri d'une table de hachage
- 23. Session VS Fichier VS Memcache pour un cache en PHP?
- 24. Glib segfault g_free table de hachage
- 25. Stratégie de mise en cache, cache de sortie vs cache de données ou les deux?
- 26. Création d'une table de hachage avec des valeurs dans VB.NET
- 27. Énumération aléatoire d'une table de hachage dans OCaml
- 28. Modification hachage dans un hachage en Perl
- 29. Comment ajoutez-vous cette table de hachage dans Clojure?
- 30. Insertion d'objets dans la table de hachage (C++)
Y at-il un avantage à convertir en base64string de byte [] et à le mettre en cache plutôt que octet [] –
@np: Immuabilité Je suppose, mais c'est tout ce que je peux penser: il serait préférable de mettre en cache le tableau d'octets et de donner des copies aux appelants si vous voulez éviter le piétinement. –