ในปัจจุบัน เมื่อมีการคอมไพล์นิพจน์ทั่วไป ผลลัพธ์จะถูกแคชไว้ ดังนั้นหากมีการคอมไพล์ regex เดียวกันอีกครั้ง ไฟล์นั้นจะถูกดึงมาจากแคชและไม่ต้องใช้ความพยายามพิเศษใดๆ แคชนี้รองรับได้ถึง 100 รายการ เมื่อถึงรายการที่ 100 แคชจะถูกล้างและคอมไพล์ใหม่จะต้องเกิดขึ้น
วัตถุประสงค์ของการแคชคือเพื่อลดเวลาการโทรเฉลี่ยของฟังก์ชัน ค่าโสหุ้ยที่เกี่ยวข้องกับการเก็บรักษาข้อมูลเพิ่มเติมใน _cache และการจับคู่ข้อมูลแทนที่จะล้างข้อมูล จะทำให้เวลาในการโทรเฉลี่ยเพิ่มขึ้น การเรียก _cache.clear() จะเสร็จสิ้นอย่างรวดเร็ว และแม้ว่าแคชจะหายไป วิธีนี้ดีกว่าการรักษาสถานะแคชและมีค่าใช้จ่ายในการลบแต่ละองค์ประกอบออกจากแคชเมื่อถึงขีดจำกัด
มีบางสิ่งที่ต้องคำนึงถึงเมื่อคำนวณประสิทธิภาพของแคช −
-
เวลาโทรโดยเฉลี่ยของแคช Hit (สั้นมาก)
-
เวลาโทรเฉลี่ยบนแคชพลาด (นานกว่า)
-
ความถี่ของการเข้าถึงแคช (ค่อนข้างผิดปกติ)
-
เวลาโทรเมื่อแคชถูกล้างหรือตัดแต่ง (ค่อนข้างผิดปกติ)
แคชนิพจน์ทั่วไปจะถูกล้างโดยใช้ _cache.clear() เมื่อถึง _MAXCACHE ของรายการ