2012-10-11 2 views
2

mocha.js을 사용하여 모든 테스트가 제대로 작동하는지 테스트 할 수 있습니다. 필자가 필요로하는 모든 모듈에 대해 테스트 시간이 약 100ms 증가한 것을 알 수 있습니다. 8GB의 메모리를 갖춘 강력한 쿼드 코어 시스템에 탑재되었습니다.node.js의 require() 비용은 얼마입니까?

require을 호출하는 실제 비용은 무엇이며 애플리케이션 성능 또는 테스트 성능에만 영향을 줍니까?

노드의 버전은 관련성이있는 경우 0.8.11입니다.

답변

5

정적 분석 중에는 실행되지 않으므로 비용이 많이 든다. 그것은, 기적를 수행 시간의 정의되지 않은 기간 동안 프로그램을 차단하는 여러 가지 일을 할 필요가 :

    그것은 당신이 파일 작업을 많이 발생할 수있는 필요로하는 모듈을 찾을 필요가
  • - 경로 검색을 포함하여 , stat, open.
  • 자바 스크립트 파일을 읽고 구문 분석하고 일부를 컴파일해야하며 실행 중에 이 필요합니다. 따라서 첫 번째 점이 있습니다.

최상위 코드가 아닌 코드에는 require을 사용하면 안됩니다. 실행 시간이 길어지면 비용을 지불 할 의사가없는 한 테스트 전에 모든 것을 요구해야합니다.

매우 오래된 Node.JS에는 require의 비동기 버전이 사용되었지만, 불행히도 더 이상 보이지 않습니다.

+3

일단 모듈이'require'' 되었다면, 그 모듈은 캐시되고 동일한 모듈에 대한'require()'호출은로드되거나 컴파일 될 필요가 없기 때문에 매우 빠르다는 것에주의하십시오 다시. – ebohlman

관련 문제