JetBrains TODO는 잠재적으로 대량의 텍스트를 RegEx 검색하기 때문에 TODO에 시간이 많이 걸리는 패턴이있는 경우 상당히 느려질 수 있습니다 (even hang).
문제는 TODO 항목을 식별하기 위해 정의되었을 수있는 정규 표현식 일치에 있습니다. JetBrains IDE가 이러한 항목을 일치시키기 위해 사용하는 Java 표준 정규 표현식 라이브러리는 지수 복잡성 알고리즘을 사용하여 '*.a'
및 유사한 패턴을 검색합니다.
이론적으로 모든 정규 표현식을 매우 빠르게 일치시킬 수 있습니다 (선형 알고리즘 있음). 그러나 정규 표현식 라이브러리의 많은 개발자는 간단히 구현하지 않습니다.
일반적으로 TODO에 문제가있는 경우 TODO 항목의 RegEx를보고 성능 향상을 위해 일치 범위를 좁힐 수 있는지 확인하십시오.
은 BTW, 같은 문제는 파이썬 모듈 다시 존재 : 수행 할 작업에 대한
>>> from timeit import timeit
>>> timeit("import re; list(re.finditer('.*a', 'foo' * 10000))", number=1)
0.6927990913391113
>>> timeit("import re; list(re.finditer('.*a', 'foo' * 50000))", number=1)
17.076900005340576
스캔 (어떤 경우에 이루어집니다 그것을 별도의 색상 스타일 ..을 가지고 할 수 있습니다 심지어 색 다른 TODO 패턴 때문에 다르게). ** [이슈 트래커] (http://youtrack.jetbrains.com/issues/WI) **에 티켓을 제출하고 ** [성능 로그] (http://devnet.jetbrains.com/)를 제공하는 것이 좋습니다. docs/DOC-1253) ** – LazyOne