Python - AI 助手

Python re purge() 方法



Python 的 re.purge() 方法用於清除正則表示式快取。Python 的 re 模組維護了一個已編譯正則表示式的快取以提高效能,但如果編譯了許多不同的模式,則此快取可能會增長。使用 re.purge() 方法,我們可以透過釋放記憶體並確保舊的或未使用的模式不會保留在記憶體中來清除此快取。

此方法在長時間執行的程式或記憶體使用量成為關注點的環境(例如 Web 伺服器或隨著時間的推移編譯許多唯一正則表示式的應用程式)中特別有用。

語法

以下是 Python re.purge() 方法的語法和引數。

re.purge()

引數

此方法不接受任何引數。

返回值

此方法不返回任何值。

示例 1

以下是 re.purge() 方法的示例,它在編譯和使用一些正則表示式後清除快取 -

import re

# Compile some regular expressions
pattern1 = re.compile(r'\d+')
pattern2 = re.compile(r'\w+')

# Use the patterns
pattern1.search('123')
pattern2.search('abc')

# Clear the cache
re.purge()

# After purge, the cache is empty
# Compile the same patterns again
pattern1 = re.compile(r'\d+')
pattern2 = re.compile(r'\w+')

print("Cache cleared and patterns recompiled.") 

輸出

Cache cleared and patterns recompiled.

示例 2

此示例演示瞭如何在使用 re.purge() 方法之前和之後測量正則表示式快取的記憶體使用情況。這可以顯示清除快取對記憶體使用量的影響 -

import re
import sys

# Compile many regular expressions to fill the cache
patterns = [re.compile(rf'\d+_{i}') for i in range(1000)]

# Measure memory usage of the cache
before_purge = sys.getsizeof(re._cache)

# Clear the cache
re.purge()

# Measure memory usage of the cache after purge
after_purge = sys.getsizeof(re._cache)

print(f"Memory usage before purge: {before_purge} bytes")
print(f"Memory usage after purge: {after_purge} bytes")

輸出

Memory usage before purge: 36952 bytes
Memory usage after purge: 64 bytes
python_modules.htm
廣告