2011-08-30 5 views
1

Android에서 SAXParser를 사용하여 큰 XML 파일을 구문 분석하고 있으며 문자열 비교를 수행하는 더 빠른 방법이 있는지 궁금해하고 있었습니까? Dalvik VM을 사용하여 할당 된 메모리를 절약하고 따라서 속도를 높일 수 있다고하는 소문을 들었지만 온라인에서는 찾을 수 없습니다.Dalvik VM을 사용한 빠른 문자열 비교?

Dalvik을 사용하여 구문 분석 속도를 높이거나 더 나은 XML 구문 분석을 빠르게 수행 할 수있는 사람을 저에게 올바른 방향으로 알려줄 수 있습니까?

답변

1

문자열의 compareTo() 메서드는 특수한 수공예 어셈블리 루틴으로 dalvik에서 내부적으로 구현됩니다. 문자열 비교를위한 성능을 이길 수있을 것 같지 않습니다.

다운로드하는 xml 파일 인 경우 구문 분석 시간을 단축 할 수있는 방법이 없습니다. 그러나 apk를 리소스 (res/xml 폴더에 있음)로 포함시킬 수 있다면 apk를 빌드 할 때 안드로이드의 바이너리 xml 형식으로 컴파일되며 XmlResourceParser를 통해 액세스 할 수 있습니다. 빠름

1

나는 구형 old String.compareTo(String)을 사용할 것입니다.

더 빠른 방법이 현재 있을지 모르지만 compareTo()은 표준 방식이므로 Android에서 향후 최적화 할 경우에만 이점이 있습니다. 그래서 결국 최적화 된 비교는 표준 방법보다 느려질 수 있습니다.

이것은 회원 필드 액세스 시간과 매우 비슷합니다. 안드로이드의 시작 부분에서이

mMyMember.something(); 

보다

final AnyClass local = mMyMember; 
local.something(); 

을 할 빠른 방법은 없었다하지만 더 이상 그렇지 않다.