필자는 Perl 파서를 몇 년 동안 켜고 끄는 작업을 해왔다.하지만 항상 사전 알파 상태 였으므로, 속도를 걱정하지는 않았다. 그러나, 나는 그것을 최적화하는 방법에 대한 연구를 시작했고, 내가 발견 한 것에 놀랐다.펄 시작 시간을 줄이는 가장 좋은 방법
일부 알고리즘 및 정규식 최적화 후 정상적인 실행에는 약 3.5 초가 걸리며 그 중 약 2.3 시간은 Perl이 시작될 때 걸리는 시간입니다 ("time perl scriptname.pl" die ("Done"); "첫 줄에). 나는 Regexp :: Grammars가 가장 빠른 Perl 모듈이 아니라는 것을 이해한다. 그러나 초기화는 실제로 스크립트를 실행하는 것보다 훨씬 오래 걸리는 것으로 보인다.
따라서 바이트 코드를 실행하기 전에 컴파일하기 쉬운 방법을 살펴보기 시작했습니다. B :: Bytecode는 더 이상 유지 보수가되지 않거나 주 Perl 배포판에 포함되지 않습니다. 시작 시간을 줄일 수있는 쉬운 방법이 있습니까?
감사합니다.
파서가 Regexp :: Grammars 외에 어떤 모듈을 사용합니까? – DavidO
Regexp :: Grammars 컴파일은 내 시스템에서 0.03 초 밖에 걸리지 않습니다. 아마도 내부 Regexp :: Grammars 구조의 초기화가 느린데, 여기서는 느리지 만 바이트 코드로 컴파일하면이 경우에는 도움이되지 않습니다 (내부 상태의 일종의 직렬화 일 수도 있습니다). –
나는 B :: Bytecode가 실제로 느린 것을 만들었다 고 느낀다. – ikegami