Die integrierte Sammlung von Anwendungsobjekten enthält Inhalte zum Speichern einfacher Typen, und die Standardanwendung ("Schlüssel") kann verwendet werden.
In den Anwendungen können jedoch keine Objekte gespeichert werden und können VBS -Arrays speichern, aber in JavaScript können sogar Arrays nicht platziert werden.
Bei Verwendung von application.contents können Sie nur hässliche verwenden, wie z. B.:
für (vari = 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.
<objectID = "dict" runat = "server" scope = "application" progid = "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:
vard = newActActXObject ("Scripting.Dictionary");
für (vari = 0; i <15000; i ++) {
D.Item (i) = "sdfdsffdsaf";}
1,5W Interpolation, 172 ms
Natürlich ist das benutzerdefinierte Objekt vard = newObject (); D [i] = .. ist schneller, 1,5-W-Zeiten dauert 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 (vari = 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 ayooledb SQLServer2000 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") = newObject ();
für (vari = 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
vart = application.staticObjects ("dict");
für (vari = 0; i <15000; i ++) {
Application.lock ();