>  기사  >  백엔드 개발  >  `re.compile()`이 실제로 Python의 정규식 성능을 향상합니까?

`re.compile()`이 실제로 Python의 정규식 성능을 향상합니까?

Mary-Kate Olsen
Mary-Kate Olsen원래의
2024-11-07 09:15:03548검색

Does `re.compile()` Really Improve Regular Expression Performance in Python?

re.compile()의 효율성 탐색

Python의 re.compile()을 사용하여 성능을 향상시키는 것이 일반적입니다. 정규식. 그러나 이 컴파일 단계가 실제로 상당한 이점을 제공하는지 궁금할 수도 있습니다.

"hello world"와 일치시키려는 정규식 "hello"가 있다고 가정합니다. 아래와 같이 re.compile()을 사용하여 표현식을 컴파일하고

h = re.compile('hello')
h.match('hello world')

컴파일 없이 단순히 re.match()를 사용하는 것과 비교하면

re.match('hello', 'hello world')

re.compile이 수행됩니다. ()는 눈에 띄는 성능 이점을 제공합니까?

컴파일된 정규 표현식을 수천 번 실행하는 것과 즉시 컴파일하는 것에 대한 개인적인 경험에 따르면 눈에 띄는 차이는 발견되지 않았습니다. 이는 컴파일 프로세스가 실행 속도에 큰 영향을 미치지 않을 수 있음을 시사합니다.

추가 조사에 따르면 re.match()를 사용할 때에도 Python이 내부적으로 정규식을 컴파일하고 캐시하는 것으로 나타났습니다. 즉, re.compile()은 컴파일이 발생할 때 기본적으로 변경되지만 상당한 시간 절약 효과는 없습니다. 실제 절약되는 시간은 내부 캐시를 확인하는 데 필요한 시간으로 제한됩니다.

따라서 정규식을 미리 컴파일하는 결정은 성능 최적화가 아닌 용도에 따라 결정하는 것이 좋습니다. 재사용 가능한 명명된 표현식의 경우 사전 컴파일을 통해 코드 가독성을 높일 수 있지만 실행 속도가 크게 향상되지는 않을 수 있습니다.

위 내용은 `re.compile()`이 실제로 Python의 정규식 성능을 향상합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.