2010-08-24 1 views
1

Mon site web utilise beaucoup de mémoire et j'ai téléchargé l'essai de ANTS Memory Profiler. Le site utilise des fichiers XML pour stocker les catégories et les éléments qui appartiennent à ces catégories - je traverse ensuite les fichiers (4mb pour le fichier de catégories et environ 800kb pour le fichier d'éléments stockés sur la machine locale (serveur web)) et crache les résultats sur la page, je pense que c'est là que réside le problème. Le problème est que lorsque je clique sur les choses sur lesquelles je devrais cliquer, je peux voir la mémoire monter mais finalement elle arrive au point où elle ne croît que de 1 ou 2mb (où la même requête l'a fait monter d'environ 60mb avant); il semble donc se stabiliser après avoir chargé les fichiers initialement. Cela ne correspond pas à l'utilisation de la mémoire que je peux voir sur un site web en direct car la mémoire continuera de monter et de monter - je suis le seul à utiliser le site de développement alors qu'il y en a des centaines qui utilisent le live.Comment la mémoire est-elle allouée à un site Web ASP.NET?

Ma question est la suivante: si 5 utilisateurs naviguent tous sur le même site Web et effectuent tous une recherche différente ou cliquent sur un lien, une partie de la mémoire est-elle allouée à chacun de ces utilisateurs?

+0

Peut-être avez-vous oublié de fermer certains objets. ! (Un peu de code de vous, peut aider à signaler le problème) – Aristos

+0

Veuillez expliquer ce que vous entendez par "le site utilise des fichiers XML pour stocker la navigation et les éléments". Comment fait-il cela? Quelle est la taille des fichiers? Où sont stockés les fichiers? Dans la base de données? Si votre mémoire augmente de mégaoctets à chaque requête de page, c'est un très mauvais signe. –

+0

@Kirk - Message original mis à jour. Bien que je suis plus intéressé à savoir comment la mémoire est allouée. @Aristos - Le projet est trop volumineux pour que je puisse publier un code qui serait utile, mais lors du profilage, j'ai vu que les objets XML prenaient beaucoup de place. – webnoob

Répondre

1

Bien sûr, alors webnoob a une réponse à accepter, je vais reprendre mes commentaires. :)

Veuillez expliquer ce que vous entendez par "le site utilise des fichiers XML pour stocker la navigation et les éléments". Comment fait-il cela? Quelle est la taille des fichiers? Où sont stockés les fichiers? Dans la base de données? Si votre mémoire augmente de mégaoctets à chaque requête de page, c'est un très mauvais signe.

Donc, à chaque requête de page, vous devez analyser 5 Mo de XML? Je déteste te le casser, mais ce design ne va tout simplement pas évoluer. Pour répondre à votre question, la mémoire n'est pas allouée par utilisateur. Il est attribué selon les besoins. Et il semble que sur chaque demande de page, il doit charger en mémoire 5mb de XML, ce qui est prohibitif. Vous devriez envisager d'utiliser une base de données et de ne récupérer que les données dont vous avez spécifiquement besoin pour une requête donnée.

Questions connexes