2013-09-21 5 views
0

저는 안드로이드 애플리케이션에서 내부적으로 웹 페이지를 생성하기 위해 StringTemplate 4를 사용하고 있습니다.StringTemplate 4 성능 향상

웹 응용 프로그램 서버에서 사용되는 템플릿 (웹 액세스 용)은 안드로이드 응용 프로그램에서 내부적으로 페이지를 생성하는 데에도 사용됩니다. json 데이터 저장소 메커니즘과 결합하면 대부분의 경우 안드로이드 응용 프로그램을 오프라인에서도 실행할 수 있습니다. 정확히 동일한 응용 프로그램 논리와 서버의 템플릿

지금 문제는 성능입니다. 일반적인 서버 요청은 요청 분석, 확인, 프로세스, ST4로드 및 html 페이지 생성과 같은 약 200ms 내에 처리됩니다. 이것은 나에게 좋다, 나는 성능 향상을 보류하고 있지만, 지금은 꽤 좋다고 생각한다.

그러나 Android 애플리케이션에서 ST4로드는 1-1,5 초 걸립니다. 템플릿 구조는 2 또는 3 레벨을 가질 수 있으며 템플릿에는 여러 렌더러가 있습니다. 하나의 레벨 템플릿 (import없이 stg)을 만드는 것과 같은 몇 가지 테스트를 수행했지만 성능이 향상되지 않았기 때문에 템플릿 파싱 및 렌더러로드와 관련이 있다고 생각합니다.

ST4로드 및 구문 분석을 향상시킬 방법이 있습니까? CompiledST 개체 또는 이와 유사한 개체를 저장하고로드 할 수있는 방법이 있습니까?

ST는 개념이 매우 훌륭하다고 생각하지만, ST가 변경되지 않으면 왜 템플릿을로드하고 구문 분석하며 관련 템플릿을 매번? 캐싱 메커니즘이 있지만 각 요청마다 다른 stg를로드하므로 첫 번째로드 시간이 절약되지 않고 모든 stg 캐싱이 장치 메모리를 먹을 수도 있습니다.

답변

0

StringTemplate의 참조 구현은 현재 프리 컴파일 된 템플릿 직렬화/비 직렬화를 지원하지 않습니다. StringTemplate 4의 C# 포트는 이것을 지원하며 기능은 TemplateGroup.EnableCache 플래그를 통해 제어됩니다.