تحتوي المجموعة المدمجة من كائنات التطبيق على محتويات مصممة لتخزين أنواع بسيطة ، ويمكن استخدام التطبيق الافتراضي ("المفتاح").
ومع ذلك ، لا يمكن للتطبيق. لا يمكن تخزين الكائنات ، ويمكنه تخزين صفائف VBS ، ولكن في JavaScript ، لا يمكن وضع صفائف حتى.
عند استخدام application.contents ، يمكنك فقط استخدام تلك القبيحة مثل:
لـ (vari = 0 ؛ i <15000 ؛ i ++) {
application.lock () ؛
//application.contents(i)="sdfdsffdsaf "؛
التطبيق (i) = "sdfdsffdsaf" ؛
application.unlock () ؛}
هنا أقوم بتخزين سلاسل 1.5W في التطبيق.
بعد استخدام Application.StaticObjects بدلاً من ذلك:
حدد القاموس باعتباره ثابتًا لتخزين البيانات ، لأن StaticObject لا يسمح بالوصول المباشر.
<ObjectId = "dict" runat = "server" scope = "application" progID = "scripting.dictionary"> </bount>
البرمجة النصية. التصرف نفسه سريع للغاية ولن يكون له تأثير كبير على مقارنة سرعة جمع staticObjects.
سرعة القاموس:
vard = newactivexObject ("scripting.dictionary") ؛
لـ (vari = 0 ؛ i <15000 ؛ i ++) {
d.item (i) = "sdfdsffdsaf" ؛}
1.5W الاستيفاء ، 172ms
بالطبع ، فإن الكائن المخصص vard = newObject () ؛ d [i] = .. أسرع ، 1.5 وات فقط يستغرق 80-90 مللي ثانية ، ولكن الوظيفة أضعف بكثير ، لذلك لا تزال تستخدم قاموسًا.
انظر الاختبار الرسمي أدناه
لـ (vari = 0 ؛ i <15000 ؛ i ++) {
application.lock () ؛
application.StaticObjects ("dict"). البند (i) = "sdfdsffdsaf" ؛
application.unlock () ؛}
الوقت طالما 6953ms. يُحكم في البداية أن سرعة الوصول لمجموعة StaticObjects لا يمكن أن تلبي متطلبات ذاكرة التخزين المؤقت. هذه السرعة هي نفس الوقت الذي يقرأ فيه Adooledb SQLServer2000.
ومع ذلك ، لا أخطط للتخلي على الفور ، لأن ميزة StaticObjects هي أنه يمكنه تخزين الكائنات ، ويمكن للقاموس أيضًا تخزين كائنات أخرى ، والتي يمكن استخدامها ككائنات ذاكرة التخزين المؤقت ، وليس فقط البيانات.
أضع كائنًا في Application.StaticObjects ("Dict"):
application.StaticObjects ("dict"). البند ("O") = newObject () ؛
لـ (vari = 0 ؛ i <15000 ؛ i ++) {
application.lock () ؛
Application.StaticObjects ("dict"). البند ("O") [i] = "sdfdsffdsaf" ؛
application.unlock () ؛}
6656ms ، أسرع قليلا. طبقة أخرى من الكائن لا تبطئ السرعة. السرعة البطيئة ليست بسبب الهيكل المعقد ، ولكن بسبب احتلال الوصول إلى الثابتة.
مرجع ما قبل المتجر
vart = application.staticObjects ("dict") ؛
لـ (vari = 0 ؛ i <15000 ؛ i ++) {
application.lock () ؛