오늘 Rhino로 독립 실행 형 모드에서 자바 스크립트를 실행하는 것이 좋은지 묻고 싶습니다.자바 스크립트 Rhino + JQuery 간단한 스크립트 성능 문제
Rhino, EnvJS + JQuery 스크립트를 실행하는 데 성능 문제가 있습니다.
load('tools/envjs/env.rhino.js')
window.location = "test.html"
load('tools/jquery.js')
// add TOC div
$('body').append('<div id="toc"></div>');
// Build TOC
$("h1, h2, h3").each(function(i) {
var current = $(this);
current.attr("id", "title" + i);
var pos = current.position().top/$("#content").height() * $(window).height();
$("#toc").append("<a id='link" + i + "' href='#title" + i +
"' title='" + current.attr("tagName") + "'>" +
current.html() + "</a>");
$("#link" + i).css("top", pos);
});
Envjs.writeToFile(document.documentElement.outerHTML, Envjs.uri('test-toc.html'))
그것은 내가 입력 HTML 문서에 대한 TOC를 구축 할 수있는 웹에서 발견 한 스크립트의 약간 수정 된 버전입니다 : 여기
는 스크립트입니다.나는 다음과 같은 명령을 사용하여 3.06GHz의 프로세서에 명령 줄에서 실행 :
이$ time java -jar tools/js.jar -opt -1 tools/make-toc.js
[ Envjs/1.6 (Rhino; U; Mac OS X x86_64 10.7; en-US; rv:1.7.0.rc2) Resig/20070309 PilotFish/1.2.13 ]
real 0m16.554s
user 0m34.131s
sys 0m1.288s
그것은 처리를 위해 꽤 많은 완료 16 초 정도 걸립니다. 나는 또한 가장 느린 부분은 Build TOC라는 것을 발견했다. 거의 10 초 정도의 시간이 걸린다.
그냥 그 입력 파일을 더하는 것보다 더 작거나 적은 23 킬로바이트 크기의 문서입니다.
왜 그렇게 오래 걸리는지 궁금합니다. 나는 그것이 1 초 내에 완료 될 것으로 기대한다.
질문 : 여기서 성능 손실의 근원은 무엇입니까? 내가 상상할 수 옵션 : 1) 코뿔소 2) EnvJs 3) JQuery와 4) 내 스크립트
다른 실행 환경의 모든 제안은 매우 감사하겠습니다. 그러나 크로스 플랫폼 개발 사이클에 통합해야한다는 점에 유의해야합니다.
이 속도의 큰 손실 "해석"모드에 의해 발생할 수 있습니다 -
http://nodejs.org/ Google V8을 둘러싼 래퍼이며 유혈 사태가 빠르다. – Prospero