Легко предположить, что все операции, которые вы исключили из примера кода, завершаются за постоянное время.Я предполагаю, что один из них делает что-то неэффективно, например, book.addLine( strLine );
или, возможно, _observer.processStatusUpdate( totalComplete , book.getTitle() );
. Если эти операции не могут завершиться в постоянное время, вы могли бы легко иметь алгоритм квадратичного анализа.
Просто подумать об операциях - лучший способ понять это, но если вы озадачены, попробуйте использовать профилировщик BlackBerry.Запустите вашу программу в отладчике Eclipse и остановите ее на точке останова непосредственно перед синтаксическим анализом.Затем в Eclipse выберите «Окно .. Показать представление .. Другое .. BlackBerry .. BlackBerry Profiler View» Выберите кнопку «Параметры настройки» на панели инструментов представления профилировщика.У него синий треугольник на значке.Задайте для параметра «присвоение метода» значение «Накопительное», а для параметра «Что профилировать» - значение «Время, включая нативные методы»
, затем продолжите программу.По окончании синтаксического анализа вам нужно приостановить выполнение программы, а затем щелкнуть вкладку «Метод» представления профилировщика.Оттуда вы сможете определить свою болевую точку.