বর্তমানে, যখন রেগুলার এক্সপ্রেশনগুলি কম্পাইল করা হয়, ফলাফল ক্যাশে করা হয় যাতে একই রেজেক্স আবার কম্পাইল করা হলে, এটি ক্যাশে থেকে পুনরুদ্ধার করা হয় এবং কোন অতিরিক্ত প্রচেষ্টার প্রয়োজন হয় না। এই ক্যাশে 100টি পর্যন্ত এন্ট্রি সমর্থন করে। একবার 100 তম এন্ট্রি পৌঁছে গেলে, ক্যাশে সাফ করা হবে এবং একটি নতুন কম্পাইল ঘটতে হবে৷
ক্যাশিং এর উদ্দেশ্য হল ফাংশনের গড় কল টাইম কমানো। ওভারহেড _cache-এ আরও তথ্য রাখা এবং এটি সাফ করার পরিবর্তে প্যারিংয়ের সাথে সম্পর্কিত গড় কল টাইম বাড়িয়ে দেবে। _cache.clear() কলটি দ্রুত সম্পন্ন হবে, এবং ক্যাশে হারিয়ে গেলেও এটি একটি ক্যাশের অবস্থা বজায় রাখার চেয়ে এবং সীমা পৌঁছে গেলে ক্যাশে থেকে পৃথক উপাদানগুলি সরানোর ওভারহেড থাকার চেয়ে পছন্দনীয়৷
ক্যাশে কার্যকারিতা গণনা করার সময় কিছু বিষয় চিন্তা করতে হবে −
-
ক্যাশে হিটের গড় কল টাইম (খুব ছোট)
-
ক্যাশে মিস করার গড় কল টাইম (আরও)
-
ক্যাশে হিটের ফ্রিকোয়েন্সি (মোটামুটি অস্বাভাবিক)
-
ক্যাশে সাফ বা ছাঁটাই করার সময় কল করার সময় (মোটামুটি অস্বাভাবিক)
রেগুলার এক্সপ্রেশন ক্যাশে _cache.clear() ব্যবহার করে সাফ করা হয় যখন এটি এন্ট্রির _MAXCACHE এ পৌঁছায়।