La colección incorporada de objetos de aplicación tiene contenido diseñado para almacenar tipos simples, y se puede utilizar la aplicación predeterminada ("clave").
Sin embargo, la aplicación. Los contentos no pueden almacenar objetos y pueden almacenar matrices VBS, pero en JavaScript, incluso las matrices no se pueden colocar.
Al usar aplicaciones. Contents, solo puede usar los feos como:
para (vari = 0; i <15000; i ++) {
Application.lock ();
//Application.contents(i)="sdfdsffdsaf ";
Aplicación (i) = "sdfdsffdsaf";
Application.unlock ();}
Aquí almaceno de 1.5w cadenas en aplicaciones. Contents, que tomaron un total de 234 ms.
Después de usar Application.StaticObjects en su lugar:
Defina un diccionario como un objeto static para almacenar datos, porque StaticObject no permite el acceso directo.
<ObjectId = "dict" runat = "server" scope = "aplicación" progid = "scripting.dictionary"> </object>
Scripting.Dictionary en sí es muy rápido y no tendrá mucho impacto en la comparación de la velocidad de recolección StaticObjects.
Velocidad del diccionario:
vard = newActivexObject ("scripting.dictionary");
para (vari = 0; i <15000; i ++) {
d.Item (i) = "Sdfdsffdsaf";}
1.5W Interpolación, 172 ms
Por supuesto, el objeto personalizado vard = newObject (); D [i] = .. es más rápido, 1.5W veces solo toma 80-90 ms, pero la función es mucho más débil, por lo que aún usa un diccionario.
Vea la prueba oficial a continuación
para (vari = 0; i <15000; i ++) {
Application.lock ();
Application.staticObjects ("dict"). Item (i) = "sdfdsffdsaf";
Application.unlock ();}
El tiempo es hasta 6953 ms. Inicialmente se juzga que la velocidad de acceso de la colección StaticObjects no puede cumplir con los requisitos de caché. Esta velocidad es casi la misma que el momento en que AdooledB lee SQLServer2000.
Sin embargo, no planeo rendirme de inmediato, porque la ventaja de StaticObjects es que puede almacenar objetos, y el diccionario también puede almacenar otros objetos, que pueden usarse como objetos de caché, no solo datos.
Puse un objeto en Application.StaticObjects ("dict"):
Application.staticObjects ("dict"). Item ("o") = newobject ();
para (vari = 0; i <15000; i ++) {
Application.lock ();
Application.staticObjects ("dict"). Item ("o") [i] = "sdfdsffdsaf";
Application.unlock ();}
6656ms, un poco más rápido. Una capa más de objeto no ralentiza la velocidad. La velocidad lenta no se debe a la estructura compleja, sino a la ocupación de acceso de los objecos estáticos.
Referencia de DICT previa a la tienda
vart = Application.StaticObjects ("dict");
para (vari = 0; i <15000; i ++) {
Application.lock ();