-
c# Regex의 패턴은 캐싱 된다.프로그래밍/의문 2019. 5. 10. 13:45반응형
정규식이 함수 안에 있으면 정규식 인스턴스가 만들어질 때마다 패턴이 컴파일이 되는 건가 해서 Regex를 static 인스턴스로 만들어두고 사용했었다.
static Regex regex = new Regex("My Pattern"); // ... bool IsValid(string str) { return regex.IsMatch(str); }
찾아보니 최근 사용한 15개 정도의 정규식은 캐싱된다고 한다.
캐싱된 정규식을 이용하려면 다음과 같이 하면 된다.
bool IsValid(string str) { string pattern = "My Pattern"; return Regex.IsMatch(pattern, str); // 정규식 패턴 풀에서 가져옴 }
https://docs.microsoft.com/ko-kr/dotnet/standard/base-types/best-practices
서로 다른 정규식이 계속 만들어지는 게 아니라면 함수 내에서 정규식을 인스턴스화 시켜도 될 거 같다.
반응형'프로그래밍 > 의문' 카테고리의 다른 글
c#, Excel Application Quit 후에도 Excel App이 종료되지 않는 현상 (0) 2019.09.24 FlatBuffer streaming 통신 (0) 2019.08.11 할당한 메모리가 working set에 잡히지 않던 현상 (0) 2019.04.23 boost asio 사용 시 win32 버전을 지정하지 않으면 io_context::run이 빠져나가는 현상 (0) 2019.04.14 CRITICAL_SECTION의 default spin count (0) 2019.04.10