Computer >> Máy Tính >  >> Lập trình >> Python

Làm cách nào để xóa bộ nhớ cache biểu thức chính quy trong Python?


Hiện tại, khi biểu thức chính quy được biên dịch, kết quả được lưu vào bộ nhớ cache để nếu cùng một regex được biên dịch lại, nó sẽ được truy xuất từ ​​bộ nhớ cache và không cần thêm nỗ lực nào. Bộ nhớ đệm này hỗ trợ tối đa 100 mục nhập. Sau khi đạt đến mục nhập thứ 100, bộ nhớ cache sẽ bị xóa và quá trình biên dịch mới phải diễn ra.

Mục tiêu của bộ nhớ đệm là giảm thời gian gọi trung bình của hàm. Chi phí liên quan đến việc lưu giữ nhiều thông tin hơn trong _cache và phân tích nó thay vì xóa nó sẽ làm tăng thời gian gọi trung bình. Lệnh gọi _cache.clear () sẽ hoàn tất nhanh chóng và ngay cả khi bộ nhớ cache bị mất, điều này sẽ tốt hơn việc duy trì trạng thái bộ nhớ cache và có trách nhiệm xóa các phần tử riêng lẻ khỏi bộ nhớ cache khi đạt đến giới hạn.

Có một số điều cần suy nghĩ khi tính toán hiệu quả bộ nhớ cache -

  • Thời gian cuộc gọi trung bình trên số lần truy cập bộ nhớ cache (rất ngắn)

  • Thời gian cuộc gọi trung bình trên bộ nhớ cache bị bỏ lỡ (lâu hơn)

  • Tần suất truy cập bộ nhớ đệm (khá phổ biến)

  • Thời gian gọi khi bộ nhớ cache bị xóa hoặc bị lược bớt (khá phổ biến)

Bộ nhớ cache biểu thức chính quy được xóa bằng cách sử dụng _cache.clear () khi nó đạt đến _MAXCACHE của các mục nhập.