سؤال

لقد قمت مؤخرًا بالتحقق من إمكانيات التخزين المؤقت في ASP.NET.

لقد قمت بتدوير "ذاكرة التخزين المؤقت" الخاصة بي، لأنني لم أكن أعرف أي شيء أفضل، بدا الأمر كما يلي:

public class DataManager
{

      private static DataManager s_instance;

      public static DataManager GetInstance()
      {
      }

      private Data[] m_myData;
      private DataTime m_cacheTime;

      public Data[] GetData()
      {
            TimeSpan span = DateTime.Now.Substract(m_cacheTime);

            if(span.TotalSeconds > 10)
            {
                  // Do SQL to get data
                  m_myData = data;
                  m_cacheTime = DateTime.Now;
                  return m_myData;     
            }
            else
            {
                  return m_myData;
            }
      }

}

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

ما هي الفوائد من استخدام الطريقة الحقيقية (http://msdn.microsoft.com/en-us/library/aa478965.aspx) بدلا من هذا؟

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

المحلول

أعتقد أن المثل القائل "دع الكمبيوتر يفعل ذلك؛إنه أذكى منك" ينطبق هنا.تمامًا مثل إدارة الذاكرة والأشياء المعقدة الأخرى، يكون الكمبيوتر أكثر اطلاعًا على ما يفعله منك؛وبالتالي، تكون قادرة على الحصول على أداء أكثر مما أنت عليه.

كان لدى Microsoft فريق من المهندسين الذين يعملون على ذلك، ومن المحتمل أنهم تمكنوا من الحصول على أداء أكبر بكثير من النظام مما هو ممكن بالنسبة لك.ومن المحتمل أيضًا أن يعمل التخزين المؤقت المدمج في ASP.NET على مستوى مختلف (لا يمكن الوصول إليه من خلال تطبيقك)، مما يجعله أسرع بكثير.

نصائح أخرى

لقد كانت آلية التخزين المؤقت لـ ASP.NET موجودة منذ فترة، لذا فهي مستقرة ومفهومة جيدًا.هناك الكثير من الموارد لمساعدتك على تحقيق أقصى استفادة منها.

قد يكون التدحرج بنفسك هو الحل الصحيح، اعتمادًا على متطلباتك.

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

يعد التخزين المؤقت في ASP.NET غنيًا بالميزات ويمكنك تكوين التخزين المؤقت بطريقة دقيقة تمامًا.

في حالتك (التخزين المؤقت للبيانات)، إحدى الميزات التي تفتقدها هي القدرة على إبطال ذاكرة التخزين المؤقت وتحديثها إذا تم تحديث البيانات الموجودة على خادم SQL بطريقة ما (تبعية ذاكرة التخزين المؤقت لـ SQL).

http://msdn.microsoft.com/en-us/library/ms178604.aspx

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