2014-01-12 2 views
1

파서를 작성 중이며 토큰은 정규식으로 식별됩니다.
각 정규식 자체는 짧고 일치하는 문자열은 짧지 만 (최대 10 자의 소수점 이하 자릿수) 각 입력 행에 대해 정규식을 사용합니다.사전 컴파일 된 정규식 패턴을 사용하여 속도 향상

this 게시물에는 자바 스크립트를 사용하는 브라우저에 대한 속도 정규화 테스트가 있으며 속도가 0 %에서 20 %까지 향상됩니다.

java 및 android의 상황은 무엇입니까? 내 스캔 상당히 내 regexes를 미리 컴파일하는 것이 더 빠릅니까? (나는 그것들을 보다 느리게 만들지 않을 것임을 알고있다)
차이점을보기 위해 같은 정규 표현식에서 최소한 몇 개의 일치 항목을 실행해야합니까?

+3

가장 좋은 방법은 테스트하는 것입니다. –

+0

@AndrewBarber 물론, 누군가가 이미 그것을했는지 보려고합니다. – ilomambo

+1

응용 프로그램의 * your * 정규 표현식이 아닙니다. 그게 중요한거야. –

답변

1

먼저 자바 스크립트 정규 표현식이 변수에 저장되어 있는지 여부에 대해 이야기하고 있습니다. 이것은 AFAIK 정규식을 미리 컴파일하는 것과 같지 않습니다.

하지만, 어떤 것이 더 좋은지를 실제로 알기 위해서는 실제 사용되는 정규식을 테스트해야합니다. 한 사람이 몇 번 이상 사용되면 가치가있을 것입니다.

많은 랜덤 regexes가 실행되면, 좋은 정규 표현식이 아닐 수도 있습니다. 메모리에 앉아있는 많은 정규 표현식으로 끝나고, 게으르며, TV를보고, 간식 ...

그래서 내 대답은 여전히 ​​있습니다. '현실 세계'의 상황에서 그것을 테스트하십시오. 그것이 앱을 출시하고 나중에 수정하는 것을 의미한다고해도.

+0

고마워, 내가 자바 스크립트 세부 정보를 모르겠다, 저자는 그것을 "preCompiledReplaceRegex"라고 불렀다. 그래서 나는 javascrpt가 정규식을 미리 컴파일하는 방법이라고 생각했다. – ilomambo

+0

@ilomambo 예; 솔직히 말해서, 나는 그 기사에 대해 약간 회의적이다. 나는 뭔가 다른 브라우저에서 실제로 아무런 차이가 없다는 것을 고려할 때, 그 곳에서 일어날 수있는 일이있을 것이라고 생각한다. 즉, 자바는 다른 이야기이며, 위의 내용이 거기에 적용됩니다. –