A coleção interna de objetos de aplicativo possui conteúdo projetado para armazenar tipos simples, e o aplicativo padrão ("chave") pode ser usado.
No entanto, o Application.Countents não pode armazenar objetos e pode armazenar matrizes VBS, mas no JavaScript, mesmo as matrizes não podem ser colocadas.
Ao usar o Application.Contents, você só pode usar os feios, como:
para (vari = 0; i <15000; i ++) {
Application.lock ();
//Application.Contents(i)="sDFDSFFDSAF ";
Aplicação (i) = "sdfdsffdsf";
Application.unlock ();}
Aqui, eu armazenei as cordas de 1,5W no Application.contents, que levaram um total de 234ms.
Depois de usar o Application.staticObjects:
Defina um dicionário como um StaticObject para armazenar dados, porque o StaticObject não permite acesso direto.
<ObjectId = "dict" runat = "server" scope = "Application" progid = "script.dictionary"> </object>
O próprio script.dicionário é muito rápido e não terá muito impacto na comparação da velocidade de coleta do StaticObjects.
Velocidade do dicionário:
vard = newActivexObject ("script.dictionary");
para (vari = 0; i <15000; i ++) {
d.Item (i) = "SDFDSFFDSAF";}
1.5W Interpolation, 172ms
Obviamente, o objeto personalizado vard = newObject (); d [i] = .. é mais rápido, 1,5W vezes leva apenas 80-90ms, mas a função é muito mais fraca, então você ainda usa um dicionário.
Veja o teste oficial abaixo
para (vari = 0; i <15000; i ++) {
Application.lock ();
Application.staticObjects ("dict"). Item (i) = "sdfdsffdsf";
Application.unlock ();}
O tempo é até 6953ms. Inicialmente, é julgado que a velocidade de acesso da coleção StaticObjects não pode atender aos requisitos do cache. Essa velocidade é quase a mesma do tempo em que o ADEOLEDB lê o SQLSERVER2000.
No entanto, não pretendo desistir imediatamente, porque a vantagem do StaticObjects é que ele pode armazenar objetos, e o dicionário também pode armazenar outros objetos, que podem ser usados como objetos de cache, não apenas dados.
Coloquei um objeto no Application.staticObjects ("dict"):
Application.staticObjects ("dict"). Item ("o") = newObject ();
para (vari = 0; i <15000; i ++) {
Application.lock ();
Application.staticObjects ("dict"). Item ("o") [i] = "sdfdsffdsf";
Application.unlock ();}
6656ms, um pouco mais rápido. Mais uma camada de objeto não diminui a velocidade. A velocidade lenta não é por causa da estrutura complexa, mas por causa da ocupação de acesso de StaticObjects.
A referência do dicto antes da loja
Vart = Application.staticObjects ("dict");
para (vari = 0; i <15000; i ++) {
Application.lock ();