वर्तमान में, जब रेगुलर एक्सप्रेशन संकलित किए जाते हैं, तो परिणाम कैश किया जाता है ताकि यदि वही रेगेक्स फिर से संकलित किया जाए, तो इसे कैशे से पुनर्प्राप्त किया जा सके और कोई अतिरिक्त प्रयास की आवश्यकता नहीं है। यह कैश 100 प्रविष्टियों तक का समर्थन करता है। एक बार 100वीं प्रविष्टि तक पहुँचने के बाद, कैशे साफ़ हो जाता है और एक नया संकलन होना चाहिए।
कैशिंग का उद्देश्य फ़ंक्शन के औसत कॉल समय को कम करना है। _cache में अधिक जानकारी रखने और इसे साफ़ करने के बजाय इसे पार करने से जुड़ा ओवरहेड उस औसत कॉल समय को बढ़ा देगा। _cache.clear() कॉल जल्दी से पूरा हो जाएगा, और भले ही कैश खो गया हो, कैश स्थिति को बनाए रखने और सीमा तक पहुंचने पर कैश से अलग-अलग तत्वों को हटाने का ओवरहेड होने पर यह बेहतर है।
कैश दक्षता की गणना करते समय कुछ बातों पर ध्यान देना चाहिए -
-
कैश हिट पर औसत कॉल समय (बहुत कम)
-
कैश मिस होने पर औसत कॉल समय (अधिक)
-
कैश हिट की आवृत्ति (काफी असामान्य)
-
कॉल का समय जब कैशे साफ़ हो जाता है या काट दिया जाता है (काफी असामान्य)
रेगुलर एक्सप्रेशन कैश को _cache.clear() का उपयोग करके साफ़ किया जाता है जब यह _MAXCACHE प्रविष्टियों तक पहुँच जाता है।