سؤال

لدي مستودع يسحب من كل من DB ، وأحيانًا ذاكرة التخزين المؤقت.

لتنفيذ هذا ، قمت بإنشاء واجهة icachewrapper تتيح لإعادة الريبو استخدام httpruntime.cache ، appfabric ، أيا كان. عادةً ما تأخذ فئات ملموسة من icachewrapper ذاكرة التخزين المؤقت في مُنشئها مثل: httpcachewrapper جديد (httpruntime.cache)

يأخذ مُنشئ الريبو إشارة إلى غلاف ذاكرة التخزين المؤقت مثل:

myRepo = new Repo(new HttpCacheWrapper(HttpRuntime.Cache));

إذا قمت بإنشاء 2 repos ، هل يتم نسخ ذاكرة التخزين المؤقت؟ لا أعتقد ذلك ، لكن مشاكل الأداء لدينا تشير إلى خلاف ذلك. هل فاتني شيء هنا؟

شكرا على اي مساعدة!

هل كانت مفيدة؟

المحلول

ماذا ترى؟ ماذا يفعل httpcachewrapper مع httpruntime.cache يتم تمريره؟

أظن أن ما تراه بدلاً من ذلك هو سياسة ذاكرة التخزين المؤقت التي تتمسك بالأشياء لفترة طويلة جدًا بالنسبة للمعدل الذي يتم تخزينه في الأمور. كما قال ريموند تشن ، "لا يمكن تمييز سياسة ذاكرة التخزين المؤقت غير الصحيحة عن تسرب الذاكرة".

الطريقة التي سأعزل بها هذا هي محاولة الاختبار باستخدام ريبو واحد فقط باستخدام السياسة التي لديك. معرفة ما إذا كانت مشاكل الأداء الخاصة بك تظهر.

إذا لم يكن الأمر كذلك ، فاستمر إلى الأمام وقم بإنشاء ريبو الثاني ومراقبة استخدام الذاكرة بشكل وثيق.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top