현재 JS 지원 (실제 프로그램은 C#으로 작성)이 필요하며 인터프리터로 Jint를 사용하고 있습니다. 추가 작업을 수행하기 전에 컴파일러 (예 : Chrome V8)와 통역사의 차이점을 파악하기위한 기본 성능 테스트를 실행했습니다. 나는 50x 감속을 예상했으나 600x에 가까웠다. Chrome의 V8은 60-100ms가 걸리고 Jint는 60-70을 사용했습니다. 초입니다.Jint는 문자열이 매우 느립니다.
내가 사용한 테스트는 Mozilla의 Dromaeo String 테스트 - http://dromaeo.com/?dromaeo/http://dromaeo.com/tests/dromaeo-object-string.html이며, DOM을 사용하지 않고 약간의 수정을가했습니다.
var sTime = new Date();
var startTest = function(){sTime = new Date();};
var test = function(name, fn){ fn(); };
var eTime = new Date();
var endTest = function(){eTime = new Date(); console.log(eTime.getTime() - sTime.getTime());};
var prep = function(fn){ fn(); };
제 질문은 : 왜 Jint는 V8/native 컴파일보다 600-1000 배 느린가요? 통역사가 실제로 그렇게 느린가 아니면 Jint가 특히 느린 특별한 경우입니까?
편집 여기 내 테스트 코드를 게시 한 : http://pastebin.com/R017KKvR
그 테스트를 완료하는 데 24-26초을 복용 string.lastIndexOf
문제 것 같다입니다.
. 'lastIndexOf'는 전체 테스트 시간의 3 분의 1에서 3 분의 2까지 걸리는 것으로 보입니다. –
다음은 테스트의 실제 출력입니다. http://pastebin.com/jftZS9pH –
이보다 더 많은 시간이 걸리므로 이것이 확실히 조사해야한다고 가정 해 봅시다. 모든 테스트가 거의 동일한 영향을 미친다 고 가정합니다. –