2011-02-16 6 views
2

J'ai une classe sérialisée de 30 Mo stockée en externe qui contient des valeurs de recherche. Chaque fois qu'une demande de service Web est reçue, j'ai besoin de charger le fichier sérialisé en mémoire et d'effectuer une recherche de clé spécifique sur cette classe sérialisée. Cette opération prend du temps et nécessite beaucoup de ressources, ce qui affecte gravement les performances de l'application.Chargement Interrogation de grands objets sérialisés

S'il vous plaît, aidez-moi à régler ce problème.

Répondre

3

Il est clair que vous devriez déplacer votre contenu sérialisé vers une base de données, ce qui sera plus efficace.

+0

Le problème est que le client nous fournira des valeurs de recherche au format sérialisé seulement. Même après le déploiement, les mises à jour des valeurs de recherche sont effectuées en remplaçant le fichier sérialisé existant par un nouveau. – AbrahamJP

+0

Même alors, vous pouvez créer une couche de base de données qui fera le mappage et la comparaison entre les données reçues par le client et vos données dans la base de données. Je reçois la base de données de facebook dans JSON .. mais je garde tham dans MSSQL .. j'avais le code pour faire le travail entre les deux .. –

+1

D'accord comme vous l'avez mentionné, je vais essayer de charger des valeurs à la base de données. – AbrahamJP

1

Essayez de charger les valeurs de recherche de la classe sérialisée dans l'objet Application. Avant cela, les valeurs de la classe sérialisée doivent être chargées dans System.Collections.Generic.HashSet

N'oubliez pas de surcharger la fonction hashcode. Pour des performances supplémentaires, pré-générez votre hashcode dans votre constructeur.

+0

Je vais examiner cela une fois que j'en ai fini avec la suggestion de base de données mentionnée par Shekar. THX – AbrahamJP

Questions connexes