Быстрое сравнение строк с помощью Dalvik VM? - PullRequest
1 голос
/ 30 августа 2011

Я анализирую большой XML-файл, используя SAXParser в Android, и мне было интересно, есть ли более быстрый способ сравнения строк? Я слышал слухи о том, что вы можете использовать виртуальную машину Dalvik, чтобы сделать что-то, что сэкономит выделенную память и, следовательно, ускорит все это, но я не могу найти ничего в Интернете.

Может ли кто-нибудь указать мне правильное направление: использовать Dalvik для ускорения моего анализа или лучший, более быстрый способ анализа XML?

Ответы [ 2 ]

1 голос
/ 02 сентября 2011

Метод String CompareTo () реализован внутри dalvik как специальная процедура сборки, созданная вручную.Маловероятно, что вы сможете превзойти его производительность при сравнении строк

Если вы загружаете этот XML-файл, я не знаю ни одного способа ускорить время анализа.Однако, если вы можете включить его в apk как ресурс (в папке res / xml), тогда он будет скомпилирован в двоичный формат xml Android при сборке apk, и вы сможете получить к нему доступ через XmlResourceParser, что должно быть значительнобыстрее

1 голос
/ 30 августа 2011

Я бы использовал старый голд String.compareTo(String).

Более быстрый способ может существовать прямо сейчас, но compareTo() является стандартным способом и, следовательно, единственным, который выиграет от будущих оптимизаций Android. Таким образом, в конце оптимизированное сравнение может стать медленнее, чем стандартный способ.

Это очень похоже на время доступа к полям члена. В начале Android это было намного быстрее сделать

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

1010 * чем *

mMyMember.something();

Но это уже не так.

...