웹 사이트 템플릿에 Apache Velocity를 사용하고 있으며 일부는 복잡해지고 있습니다. 특정 Velocity 기능의 성능 문제를 알아 봤습니까? 그리고 어떻게 그들 주위에 있었습니까?Apache Velocity 성능 함정?
답변
사람들이 종종 간과하는 가장 중요한 기능은 성능을 상당히 향상시키는 리소스 로더 캐싱 (기본적으로 꺼짐)입니다 (file.resource.loader.cache
).
#parse
지시어도 성능에 현저한 영향을 미치지 만 템플릿을 논리적 부분으로 분할하는 것만이 아니라 코드 중복을 피하기 위해 사용하십시오.
템플릿이 로직면에서 상당히 복잡해지면 해당 로직을 컨트롤러로 옮기고 데이터 구조를 렌더링 할 준비가 된 템플릿을 제공 할 수 있습니다.
Velocity에서 성능 저하를 발견하지 못했습니다. JSP에서 전환하기 전에 Velocity 속도를 테스트했을 때, 내가 버린 템플릿에서 지속적으로 50 % 더 빠릅니다. 현재 우리는 Velocity 템플릿에서 렌더링 된 수천 페이지의 사이트를 생성하며 번개처럼 빠르고 성능에 매우 만족합니다.
루프 외부에서 매번 동일한 값을 생성하는 Java 코드로 호출을 이동하면 성능이 향상 될 수 있습니다. 이것은 내 상황에서 도움이되는 것처럼 보였다. Java의 Hotspot 컴파일러는 Java 코드에이 작업을 수행합니다. Velocity 엔진에이 기능이 있는지 확실하지 않습니다. –
먼저 최신 속도 라이브러리 (1.7 또는 1.6.4)를 사용하십시오. 버전 1.5에는 심각한 성능 문제가 포함되어 있습니다.
또한 여기 당신이 생산 환경을 조정할 수 있어야합니다 매개 변수의 목록은 다음과 같습니다
- velocimacro.library.autoreload을 - 거짓
- file.resource로 설정해야합니다. loader.cache - 으로 설정해야합니다.
- fi le.resource.loader.modificationCheckInterval이 - 기본값이 충분한 크기가 아닌 경우 증가한다 -1
- parser.pool.size로 설정해야합니다
(기본값은 20) 우리 출력 텍스트를 너무 많이 인코딩하지 않도록 ASTText
노드에 byte[]
을 캐시하십시오.
+1 Taobao.com 출신입니까? –
당신이 어떻게했는지에 대해 더 자세히 설명해 줄 수 있습니까? –
당신이 어떻게했는지 알았을 것 같아요. 고맙습니다 ~! 하지만 출력 텍스트를 너무 많이 인코딩한다고 말하는 이유는 무엇입니까? 나는 그것을 이해하지 못한다. –
- 1. Apache Velocity $ vs $! {}
- 2. Apache Velocity foreach 루프 #continue
- 3. Memcached/Microsoft Velocity 성능 질문
- 4. Apache Velocity 템플릿에서 상수 값에 액세스 하시겠습니까?
- 5. Netbeans 6.5 이상을위한 Apache Velocity 플러그인이 있습니까?
- 6. StringBuilder/CharSequences와 함께 Apache Velocity 사용
- 7. 프로토 타입 데이터베이스 디자인의 함정 (성능 생존력 테스트 용)
- 8. Apache Velocity 액세스 Java 코드로 작성된 문자열 배열?
- 9. Apache Ant 우편 태그 성능
- 10. 성능 테스트 Apache 대 NodeJ
- 11. Apache Mod Mono (mod_mono) 성능?
- 12. Android : AlarmManager 함정
- 13. Ruby monkey patching 함정
- 14. 모듈 "duck typing"함정?
- 15. 안드로이드 애플리케이션의 함정
- 16. Apache Tomcat에서 Vaadin 프론트 엔드의 성능
- 17. web2py 성능 향상 - 데이터베이스 및 Apache
- 18. Velocity $ fn docs
- 19. Freemarker/Velocity - 날짜 조작
- 20. 조건부 연산자 in Velocity
- 21. velocity (test instanceof)
- 22. MySQL에서 나왔다. 오라클로 돌아 가기 : 함정
- 23. 자바 스크립트 메모리 관리 함정?
- 24. Perl에서 함정 알림을 모니터링하려면 어떻게합니까?
- 25. 싱글 톤 디자인 패턴 : 함정
- 26. BigDecimal은 Velocity, Struts2에서 문자열로 평가됩니다.
- 27. Entity Framework 4 및 Velocity
- 28. Velocity 템플리트간에 매개 변수 전달
- 29. Velocity tamplates의 액센트 문자 바꾸기
- 30. Spring MVC + Hibernate Validator + Velocity
의심이가는 경우 프로필을 작성하십시오. 프로파일 러 사용. 추측 할 필요가 없습니다. – skaffman