Optimisation ASP, technologie ASP Cache
1. Qu'est-ce que le cache ASP / pourquoi le cache
Lorsque votre site Web est établi dans les premiers jours de la technologie ASP, vous pouvez ressentir la commodité apportée par la technologie Web ASP Dynamic, ainsi que le contrôle HTTP modifié aléatoire et libre. Cependant, à mesure que le nombre de visites augmente, vous constaterez certainement que l'accès à votre site devient de plus en plus lent, et IIS a de plus en plus fréquemment. Ensuite, vous devez vouloir optimiser l'ASP, comme le remplacement de plus de bonnes bases de données, de l'établissement d'index, de la rédaction de procédures de stockage, etc. Certaines de ces mesures n'ont pas besoin d'augmenter la pression des coûts, tandis qu'une partie de la pression des coûts (comme l'accès aux grappes à SQL), et l'effet ne l'est pas nécessairement.
Face à la pression de l'accès Web, je pense que la méthode la plus économique est d'utiliser la technologie d'optimisation du cache pour soulager la pression de service du Web.
L'augmentation du volume d'accès Web signifie généralement la croissance rapide de la demande de ressources suivante:
1. Augmentation du trafic de la carte réseau, il est nécessaire de consommer plus de traduis en réseau de traitement du CPU et de threads d'E / S réseau.
2. Il est nécessaire d'ouvrir / fermer la connexion de la base de données plus fréquemment (si la technologie de la base de données est utilisée - habituellement ASP utilisera la base de données comme stockage de données), le nombre de choses qui consomment sérieusement les ressources et la blocage causée par les ressources concurrentes des ressources concurrentes de transactions, qui augmenteront les E / S du réseau.
3. Si la session est utilisée, IIS consomme plus de mémoire afin de maintenir l'état, et la consommation de mémoire peut provoquer une mémoire physique insuffisante, provoque un échange fréquent entre la mémoire physique et la mémoire auxiliaire, ce qui fait que l'exécution du code s'arrête.
4. En raison de la réponse en temps opportun de l'accès, la défaillance de l'accès de la page Web sera causée, ce qui fera actualiser les utilisateurs, exacerbant ainsi les besoins des processeurs, de la mémoire et d'autres ressources.
En fait, compte tenu de l'application Web habituelle, l'exécution dynamique du code n'est pas nécessaire.
2. Classification du cache ASP
Résumé sans autorisation, le cache d'ASP peut être divisé en deux catégories:
1. Cache de fichier
Le cache de fichier SO-SoEt est de juger en fonction du jugement logique. Peut accéder au fichier statique à partir de la redirection Web vers la technologie, pour répondre aux besoins de réduction des CPU, les ressources de la base de données. Il existe de nombreuses applications de ce type. Castle a un effet secondaire (avantage) - Cela peut être facilement inclus par les moteurs de recherche tels que Google. Certains systèmes de communiqués de presse, ont adopté cette technologie.
2. Cache de pause de film de fichiers
Le cache de fichier SO-Soal est également basé sur un jugement logique. Données sous forme de fichiers. Par exemple, nous stockons généralement des données au format XML, puis utilisons la technologie XSLT pour implémenter l'affichage (le traitement XML nécessite généralement une grande quantité de ressources CPU, donc IE lit généralement XML directement au client pour le gérer sur le processeur du client). C'est ainsi que le forum de CSDN est traité.
3. Cache de mémoire principale
De plus, vous pouvez également envisager de traiter le cache en mémoire et de stocker le contenu qui doit répondre en temps opportun en mémoire en temps opportun. Si un grand nombre de besoins d'accès sont concentrés sur plusieurs petites pages ou le stockage principal, je souhaite utiliser le cache de mémoire principal pour améliorer considérablement les performances d'accès Web.
3. Comment réaliser / utiliser le cache
Les problèmes suivants doivent être examinés pour mettre en œuvre le cache:
1. Quelles pages ne changeront pas en peu de temps?
Analysez votre propre site, il existe de nombreuses pages. Par exemple, un site a généralement des colonnes de nouvelles et d'informations. Ensuite, ces pages conviennent au cache avec des fichiers statiques. En fait, le système de communiqué de presse SOP est effectué, vous pouvez donc également vous référer aux idées de ces systèmes pour transformer votre page ASP dynamique d'origine.
2. Ces pages sont générées pour toutes les visites pour générer la même logique (c'est-à-dire ne pas faire la distinction entre les visiteurs).
À l'exception des colonnes telles que les nouvelles et les informations, tous les visiteurs regardent une interface, et l'application de ressources telles que les forums et autres ressources de consommation peut généralement être conçue comme une génération de logique unifiée (le même message, Zhang Sanli et Sisi sont les mêmes ). Vous pouvez également envisager de briser les données et d'utiliser la technologie du script en plus de la capacité de traitement du serveur, c'est-à-dire le navigateur client pour le traitement.
3. Utilisez le coût et la récolte du cache.
Principalement le temps pour les changements d'espace (réponse). Utilisez la technologie de cache pour pré-traiter le contenu fréquemment nécessaire pour améliorer la capacité de réponse du serveur Web, et surtout gagner la faveur des visiteurs.
Le prix est que la demande d'espace Web augmente et peut affecter l'effet d'accès.
Mais je pense que le cache approprié est supérieur aux inconvénients.
4. Au lieu d'utiliser du cache dans ces endroits
La page de requête dynamique, le contenu de requête de chaque personne est différent, donc les résultats de l'affichage ne sont pas les mêmes, il est donc peu probable qu'il génére le cache de résultat de requête, donc le cache est plus compliqué et au bas du taux d'utilisation du cache, ce qui entraîne Le coût de gestion.
Quatrièmement, analyse d'instance
Supposons que la disposition originale d'un forum de suggestions soit la suivante:
Dans le répertoire racine:
Default.asp Page d'accueil, généralement l'essence, la recommandation et similaires
Listborad.asp Ce fichier répertorie les noms et l'introduction de toutes les colonnes.
ListThread.asp Le fichier ne porte aucun paramètre pour indiquer tous les autocollants et transporter principalement pour représenter tous les autocollants d'une certaine pièce. Si Subbid est transporté pour indiquer le poste de la colonne spécifique. Si vous portez le paramètre de page pour indiquer la pagination du sujet.
ViewThread.asp répertorie un certain contenu d'autocollant. Nous supposons que les messages sont affichés comme un discours et que tous suivent les autocollants qui sont répertoriés. Le paramètre ID est le post à afficher.
Répondre.asp répond à un certain poste, transportez l'ID du paramètre pour répondre à un certain poste
Aucune autre discussion.
Ci-dessus, nous pouvons voir que si tous sont effectués en utilisant l'ASP / PHP d'origine, l'exécution de presque tous les fichiers ASP nécessite des opérations de base de données, une requête fréquente et plusieurs requêtes. Il convient de savoir que la base de données de requête entraînera éventuellement une baisse des performances, la vitesse de réponse diminue et l'impact de navigation lent sur les visiteurs ne sera pas propice à la qualité du Web. Plus important encore, pour les deux personnes en A et B, ils ont visité Viewthread.asp et similaires si les identifiants sont cohérents, alors plusieurs fois ils verront le même contenu (le code HTML reçu par leur navigateur est presque le même), mais pour Ce pour cela dans le même contenu, le serveur doit ouvrir la connexion de la base de données, requérir, lire des enregistrements et montrer que les enregistrements et les connexions de la base de données sont fermés. Essence Essence Essence Si plus de personnes sont accessibles par plus de personnes, le résultat final est que ces personnes aggravent les ressources du serveur. En fait, la main-d'œuvre en double pour le même contenu peut être optimisée avec la technologie du cache. Par exemple:
Après avoir soumis le contenu de REPY.asp, nous avons immédiatement appelé la fonction statique pour générer le contenu statique vers les fichiers HTML statiques tels que Viewthread_xxx.htm, puis lors de la visite de Viewthread.asp? La vue de fichier statique correspondante correspondante. De cette façon, lorsqu'un message n'est pas le plus récent, il est toujours fourni au contenu statique du spectateur;
Listborad.asp peut également implémenter statique. Nous pouvons analyser les paramètres qui peuvent être transportés, définir le nom du fichier de cache sur listboard_xx.htm et mettre à jour le listboard_xxx.htm lors de l'ajout d'une nouvelle colonne. ListThread.asp est similaire, mais en raison de plus de paramètres, il y aura beaucoup de fichiers de cache. Si vous souhaitez cache Listthread.asp? Il en va de même pour Default.asp.
Alors, comment juger quand mettre à jour? Quelle heure à jour?
讨论 ListThread.asp? Fichier statique. Notez qu'aucune existence ici signifie que l'émergence de nouveaux contenus nous oblige à mettre à jour.
Comment les fichiers ne peuvent-ils pas exister? supprimer. Nous pouvons supprimer tous les fichiers statiques comme Listthread_xxx_p2.htm lors de la publication d'un nouvel autocollant, de la suppression des autocollants et des autocollants en mouvement. De cette façon, le cache est informé.
Il reste encore un problème maintenant, comment générer des fichiers statiques?
Nous avons remarqué que le même contenu que nous avons mentionné auparavant.我们可以将改造前的 default.asp 、 ListThread.asp 等拷贝一个副本 , 取名为 Default_d.asp 、 Listthread_2.asp , 且在同一个目录中 (理论上 理论上 理论上 listThtrad.asp? Subid = 123 同 Listthread_d.asp? Les résultats d'accès de subid = 123 seront le même contenu), de sorte que dans la logique de la nécessité de générer des fichiers statiques, nous appelons la copie avant la modification par la demande d'accès Web, obtenons le code HTML et le stockons en tant que fichier statique. Cette demande Web est en fait équivalente avant que tout véritable visualiseur accède au contenu statique, le serveur lui-même est inspecté par le HTML qui sera sorti, puis renvoie ces code pour stocker la fonction de fonctionnement du fichier comme un fichier statique. De cette façon, le fichier de cache a été créé avant la vraie visionneuse.
Un tel schéma ne touche presque pas à la disposition d'origine, et il ne provoque guère des erreurs telles que 404 en raison de la transformation. Deuxièmement, les fichiers statiques aideront également que votre site est facilement inclus par des moteurs de recherche tels que Google. Pourquoi pas?
Enfin, rappelez-vous que grâce à l'accès Web, dans l'environnement de programmation ASP, de nombreuses personnes utilisent des composants XMLHTTP pour accéder, ce qui entraînera de nombreux problèmes. La ressource selon laquelle XMLHTTP se cachera les demandes, ce qui entraînera le contenu obtenu par nos demandes via ce composant, provoquant une confusion logique. Par conséquent, vous devez choisir les objets HTTP du serveur XML ou les composants WinHTTP pour implémenter des ressources de demande Web.
L'utilisation de la technologie de cache dans ASP peut en grande partie améliorer les performances de votre site Web.
Avant d'introduire ces technologies, expliquons quelle est la technologie de cache d'ASP.
Le cache So-Called ouvre un espace pour enregistrer les données en mémoire. Une fois que vous avez effectué une action de requête et mis les résultats de la requête dans le cache, vous pouvez rapidement visiter les données rapidement. Et si vous ne mettez pas les données dans le cache, lorsque vous exécutez à nouveau cette requête, le serveur consomme le processus à partir de la base de données et le trié.
Lorsque les données sont stockées dans le cache, le temps qu'il faut lorsque l'interrogation est à nouveau principalement au moment de l'affichage des données.
En d'autres termes, nous ne devons pas mettre les données qui doivent souvent changer dans le cache du serveur.
Maintenant, nous discutons d'abord de la technique d'utilisation de l'ASP sur le serveur.
Technologie de cache.
Lorsque vous avez beaucoup de données (statique, c'est-à-dire moins de modifications) doivent être affichées au client, vous pouvez envisager d'utiliser la technologie Cache sur le serveur. Cette technologie est particulièrement adaptée aux sites Web avec une cohérence solide du style d'affichage (hein, pour les sites Web non-Mainsstream, il n'est pas facile à utiliser.)
En fait, la méthode de mise en œuvre est particulièrement simple.
Ceci est un exemple pour afficher la classification des livres
Fichier DisplayBooks.asp:
<% @ Language = Javas
CRIPT%>
<html>
<body>
<Formulaire méthode = post>
Classification des livres; <% = getBookSListbox ()%>
<p>
<Type d'entrée = soumettre>
<%
Fonction getbookslistbox () ()
{{
Bookslistbox = application (bookslistbox)
if (bookslistbox! = null) return bookslistbox;
Crlf = string.fromcharcode (13, 10)
Bookslistbox = <select name = books> + crlf;
SQL = SELECT * From Books Order by Name;
cnnbooks = server.createObject (adodb.connection);
cnnbooks.open (livres, admin,);
RSTBOOKS = CNNBOOKS.EXECUTE (SQL);
FldBookName = rstBooks (bookname);
While (! Rstbooks.eof) {
Bookslistbox = bookslistbox + <opoption> +
Fldbookname + + crlf;
rstBooks.movEnext ();
}
Bookslistbox = bookslistbox +
Application (bookslistbox) = bookslistbox
Return bookslistbox;
}
%>
C'est très simple, en fait, il utilise une technologie d'application très simple, et la différence est dans une phrase:
Application (bookslistbox) = bookslistbox
Vous pouvez vérifier que vous constatez que le nombre de demandes sur le serveur sera beaucoup réduit. Cette situation est particulièrement adaptée aux sites Web qui ne sont pas très fréquents car ces mises à jour, telles que vous n'êtes mis à jour qu'une seule fois (ou longtemps).
Discutez d'une technologie de cache client. Cette technologie est principalement utilisée pour enregistrer les informations personnelles des utilisateurs, telles que les mots de passe utilisateur, les codes de code, etc. Il utilise principalement certains attributs de l'ADO. Dans le même temps, certains internautes ont mentionné si les questions qui peuvent utiliser des objets ADO dans Applocation. L'explication n'est pas claire, que le code parle ci-dessous:
File global.asa:
<! -MetAdata Type = Fichier typelib = C: / Fichiers de programme / Common
Fichiers / Système / ADO / MSADO15.DLL->
<Script Language = VBScript Runat = Server>
Sous-application_onstart
SQL = Sélectionnez Nom d'utilisateur, mot de passe depuis UserInfo
cnnUsers = dsn = utilisateur
Set rsusers = server.createObject (adodb.recordSet)
«Notez que les deux phrases suivantes sont utilisées pour réaliser la technologie ADO qui est disponible pour déconnecter les connexions
RSCSOMOMOMERSORSORLOCATION = ADUSECLIENT
rscosomers.open SQL, CNNADVWORKS, AdoptenStatic, AdlockReadonly
'Brise la connexion de Recordset et de la base de données
rscosomers.activeConnection = rien
Définir l'application (RSCustomers) = RSCustomers
Sub-Sub
Fichier Users.asp
<%
'La méthode de clone fait que chaque utilisateur a une collection de colocataires
Définir votre application (application (rsusers) .clone
Set username = yourUser (nom d'utilisateur)
Définir le mot de passe = YourUsers (mot de passe)
Faire unil vos propriétaires.eof
%>
Nom d'utilisateur: <% = nom d'utilisateur%> Mot de passe utilisateur: <% = mot de passe%>
<%
yourUsers.movènext
Boucle
%>