Я разбираю большой XML файл с помощью SAXParser в Android и задаюсь вопросом, существует ли более быстрый способ сравнения строк? Я слышал слухи, что вы можете использовать Dalvik VM, чтобы сделать что-то, что позволит сэкономить выделенную память и, следовательно, ускорить все это, но я не могу найти что-либо в Интернете.
Может ли кто-нибудь указать мне в правильном направлении либо использовать Dalvik, чтобы ускорить мой синтаксический анализ, либо лучший, более быстрый способ анализа XML?
Метод String compareTo() реализован внутри dalvik как специальная ручная процедура сборки. Вряд ли вы сможете превзойти его производительность для сравнения строк
Если это xml файл, который вы загружаете, я не знаю, как ускорить ваше время синтаксического анализа. Однако, если вы можете включить его в apk в качестве ресурса (в папке res/xml), тогда он будет скомпилирован в бинарный XML-формат Android при сборке apk, и вы сможете получить к нему доступ через XmlResourceParser, что должно быть значительно Быстрее
Я бы использовал старую String.compareTo(String)
.
Более быстрый способ может существовать прямо сейчас, но compareTo()
является стандартным способом и, следовательно, является единственным, что будет полезно для будущих оптимизаций, сделанных Android. Поэтому в конце оптимизированное сравнение может стать медленнее, чем стандартный способ.
Это очень похоже на время доступа к полям членов. В начале Android было гораздо быстрее сделать
final AnyClass local = mMyMember;
local.something();
чем
mMyMember.something();
Но это уже не так.