클로저스 다운로드 속도

다른 인기 있는 오픈 소스 프레임 워크와 폐쇄 템플릿 통합이 많이 있습니다. 다음은 시작 하기 위한 몇 가지 옵션입니다. 클로저 컴파일러의 표준 별칭 변수는 모두 전역 변수입니다. 이는 JavaScript 엔진이 기능적 범위 (예: IE < 9조)를 탐색 하는 데 선형 시간을 소요 하는 오래 된 브라우저에서 중첩 함수 호출 내에 있는 것이 더 깊을수록 ` 참 ` 또는 ` 거짓 ` 등을 포함 하는 변수를 찾는 데 시간이 오래 걸립니다. 거의 모든 현대 자바 스크립트 엔진은 글로벌 변수 액세스를 최적화 하므로이 페널티는 더 이상 많은 경우에 보유 하지 않아야 합니다. 실행 mvn-pom-main, pom-main-shaded는 컴파일러의 GWT 버전을 구축 건너 뛸 것입니다-대 한 테스트. 이렇게 하면 빌드 프로세스 속도가 크게 빨라집니다. 결론은: 많은 사람들이 폐쇄 컴파일러의 표준 별칭 (me 포함)의 유용성을 의심 하지만 재료 성능 적중을 예상 해서는 안 됩니다. 또한 gzip 크기의 재료 혜택을 기대할 수 없습니다.

클로저 템플릿은 서버와 클라이언트측 모두에서 동일한 템플릿을 사용할 수 있도록 JavaScript와 Java 모두에 대해 구현 됩니다. 두 언어 모두에 대해 작동 하는 데이터 모델과 식 구문을 사용 합니다. 클라이언트 쪽에서는 클로저 템플릿이 효율적인 JavaScript로 미리 컴파일됩니다. 단순 모드에서 클로저 컴파일러는 컴파일러와 유사한 분석을 사용 하 여 코드 크기를 최소화 하는 추가 방법을 찾기 때문에 다른 도구 보다 더 잘 할 수 있어야 합니다. 예를 들어, 클로저 컴파일러는 몇 번의 발생에만 사용 되는 인라인 함수와 변수 이름을 재사용 하 고 상수 표현식을 미리 계산 합니다. 클로저 컴파일러 실행에 대 한 자세한 정보는 문서에서 확인할 수 있습니다. 그러나 나는 폐쇄 컴파일러에서 내 출력의 상단에 이것을 발견: globs 또는 많은 파일을 사용 하는 경우, 스크립트 사이의 종속성을 관리 하는 문제에 실행을 시작할 수 있습니다. 이 경우 클로저 라이브러리를 사용 해야 합니다. 스크립트 간에 종속성을 적용 하기 위한 함수를 포함 하 고 클로저 컴파일러는 자동으로 입력 순서를 다시 정렬 합니다. 최근에는 내부 축소 도구를 클로저 컴파일러로 교체 했습니다. 이전 축소 도구와 마찬가지로 고급 모드의 클로저 컴파일러는 전역 함수 이름 바꾸기 및 데드 코드 제거를 지원 합니다. 또한 JavaScript 파일 간 코드의 동적 이동과 함수 인라이닝 같은 추가 기능도 있습니다.

클로저 컴파일러를 통해 자바 스크립트 코드를 실행할 때, Gzip 압축 후 우리의 주요 자바 스크립트 파일의 크기는 이전 축소 도구 보다 15% 더 작습니다. 우리는 이러한 파일 크기 절감의 대부분이 컴파일러의 입력으로 공급 된 우리의 “지연 로드” 자바 스크립트 파일 중 하나에 우리의 주요 자바 스크립트 파일에서 코드를 이동 하는 컴파일러가의 기능에서 온 것을 발견 했다. 예. 클로저 컴파일러는 유효한 자바 스크립트를 읽고 유효한 JavaScript를 생성 하기 때문에 다른 미니 기를 통해 파일을 실행 하기 전이나 후에 클로저 컴파일러를 JavaScript 파일에 적용 할 수 있습니다. 고급 모드에서 클로저 컴파일러는 추가 된 유형 어노테이션을 사용 하 여 스팟 찾기 어려운 버그를 찾을 수도 있습니다. 아무 일도 일어나지 않는다면 GitHub 데스크탑을 다운로드 하 고 다시 시도 하십시오. 클로저 컴파일러와 다른 미니는 들어오는 코드에 대 한 기대치를 가질 수 있다는 것을 기억 하십시오. 주석을 제거 하는 minifier는 예를 들어 다른 도구에 필요한 라이센스 또는 주석 정보를 제거할 수 있습니다. 일반적으로 JIT는 실제로 코드에서 해당 함수에 대 한 두 개의 문자열 입력을 사용 하 고 문자열 (또는 첫 번째 함수에 대 한 정수)을 반환 하며이를 형식별 JIT에 저장 하 여 실제로 신속 하 게 만드는 것을 볼 수 있습니다. 이제 google 클로저가 이상한 일을 하는 경우 거의 동일한 시그니처가 있는 함수를 하나의 함수로 변환 (사소한 코드의 경우) 하면 컴파일러가 JIT가 좋아하지 않는 것을 수행 하면 JIT 속도가 손실 될 수 있습니다.