Die integrierte Sammlung von Anwendungsobjekten verfügt über einfache Arten von Inhalten, die Standardanwendungen ("Schlüssel") verwendet werden können. Im Folgenden finden Sie einige Erfahrungen beim Erstellen von Cache durch Inhalt und StaticObjects von ASP JavaScript -Anwendungsobjekten. Lassen Sie uns unten mehr darüber erfahren!
Bei Verwendung von application.contents können Sie nur hässliche verwenden, wie z. B.:
für (var i = 0; i <15000; i ++) {
Application.lock ();
// application.Contents (i) = "sdfdsffdsaf";
Anwendung (i) = "sdfdsffdsaf";
Application.unlock ();}
Hier speichere ich 1,5 -W -Zeichenfolgen in Anwendungen. In den Incontents, die insgesamt 234 ms dauerte.
Nach der Verwendung von application.staticObjects stattdessen:
Definieren Sie ein Wörterbuch als staticObject zum Speichern von Daten, da staticObject keinen direkten Zugriff zulässt.
<Objekt id = "dict" runat = "server" scope = "application" program = "scripting.dictionary"> </Object>
Scripting.Dictionary selbst ist sehr schnell und hat keinen großen Einfluss auf den Vergleich von staticObjects -Sammelgeschwindigkeit.
Geschwindigkeit des Wörterbuchs:
var d = new ActiveXObject ("Scripting.Dictionary");
für (var i = 0; i <15000; i ++) {
D.Item (i) = "sdfdsffdsaf";}
1,5W Interpolation, 172 ms
Natürlich das benutzerdefinierte Objekt var d = neues Objekt (); D [i] = .. ist schneller, 1,5-W-Zeiten kosten nur 80-90 ms, aber die Funktion ist viel schwächer, so dass Sie immer noch ein Wörterbuch verwenden.
Siehe den offiziellen Test unten
für (var i = 0; i <15000; i ++) {
Application.lock ();
Application.StaticObjects ("dict"). Punkt (i) = "sdfdsffdsaf";
Application.unlock ();}
Die Zeit beträgt bis zu 6953 ms. Es wird zunächst beurteilt, dass die Zugangsgeschwindigkeit der StaticObjects -Sammlung die Anforderungen des Cache nicht erfüllen kann. Diese Geschwindigkeit entspricht fast der Zeit, als Ado OLEDB SQL Server 2000 liest.
Ich habe jedoch nicht vor, sofort aufzugeben, da der Vorteil von staticObjects darin besteht, dass es Objekte speichern kann und das Wörterbuch auch andere Objekte speichern kann, die als Cache -Objekte verwendet werden können, nicht nur als Daten.
Ich habe ein Objekt in application.staticObjects ("dict") eingelegt:
Application.staticObjects ("dict"). Item ("o") = new Object ();
für (var i = 0; i <15000; i ++) {
Application.lock ();
Application.staticObjects ("dict"). Item ("o") [i] = "sdfdsffdsaf";
Application.unlock ();}
6656 ms, etwas schneller. Eine weitere Objektschicht verlangsamt die Geschwindigkeit nicht. Die langsame Geschwindigkeit liegt nicht an der komplexen Struktur, sondern an der Zugangsbeschäftigung von staticObjects.
Referenz von Pre-Store Dict
var t = application.staticObjects ("dict");
für (var i = 0; i <15000; i ++) {
Application.lock ();
T.Item ("o") [i] = "sdfdsffdsaf";
Application.unlock ();}
3094 ms, die Zeit erfolgreich um mehr als die Hälfte reduziert. Was ist, wenn die vorsparende Strategie in JS auch T.Item ("O") vorspart?
var t = application.staticObjects ("dict"). item ("o");
für (var i = 0; i <15000; i ++) {
Application.lock ();
t [i] = "sdfdsffdsaf";
Application.unlock ();}
125 ms, schließlich erfolgreich, nur die Hälfte der Anwendung. Inhalt. Es scheint, dass die Zeit meistens aufgewendet wird, „Referenzen“ zu erhalten, anstatt dass staticObjects Gedächtnisbereich langsam geschützt wird. StaticObjects haben bessere Sicherheitsmaßnahmen als Inhalte, da Objekte gespeichert werden müssen.
Auf die leistungsstarken Funktionen des Wörterbuchs zu stützen, es angemessen zu verkapulieren und mit populären Methoden wie Put (), Get (), enthält () usw. darauf zuzugreifen, ist ein leistungsstarker Cache.
////Bemerkung
Ich habe eine .SCT -Komponente eingekapselt; Geschrieben von ASP JavaScript, habe es gesendet, wenn Sie Zeit haben, also werde ich heute hier sein.
Die von Contens und staticObjects verwiesene Geschwindigkeit wurde getestet. Es betrug 0 ms in 20-mal, das 100-fache der Geschwindigkeit etwa 5 Mal und 500 bis 1500 Mal das 10-fache der Geschwindigkeitsdifferenz. Der Zugang nach dem Erwerb wird jedoch nicht beeinträchtigt.
Einige der Erfahrungen mit Cache in ASP JavaScript -Anwendungsobjekten und staticObjects werden Ihnen hier vorgestellt. Werden Sie nach dem Lesen viel davon profitieren?