Работает очень медленно - PullRequest
2 голосов
/ 19 января 2010

Мое приложение подключается к веб-серверу, загружает данные (приблизительно 43000 байт) и выполняет математические функции (например, log, +, -, * и т. Д.) Для каждого байта.

Чтобы подготовить файл apk, это похоже на публикацию на Android Market. Выключил режим отладки и отключил все регистраторы.

Затем поместите его на веб-сервер и загрузите (установите) на мое устройство HTC. После установки я протестировал приложение. Время от начала чтения байтов до конца задачи составляет приблизительно 4 минуты. Это очень медленно.

Я исследовал эту часть. Кажется, что медленно работает над математическими функциями.

Есть ли способ увеличить рабочую скорость?

Мой код совпадает с версией моего приложения для iphone. Это очень быстро. Все части выполняются за 4 - 10 секунд.

Что здесь не так?

Или мне нужна какая-либо конфигурация (связанный режим отладки)?

Пожалуйста, совет.

Спасибо.

Ответы [ 3 ]

4 голосов
/ 19 января 2010

Я бы предложил оценить производительность по математике на обеих платформах.

Не все мобильные процессоры имеют аппаратный модуль FPU, поэтому сложная математика может быть ОЧЕНЬ медленной.

Обходной путь - реализовать математические функции с помощью целочисленных вычислений с ограниченной точностью - это может дать вам повышение производительности в 2-10 раз, если оно действительно эмулируется.

3 голосов
/ 19 января 2010

Первым шагом в решении любых проблем с производительностью является их выявление. Вы должны указать в своей заявке, чтобы точно определить, где проблемы.

Вы можете использовать инструмент traceview для профилирования вашего приложения. Посмотрите на этот вопрос для получения инструкций по использованию traceview.

0 голосов
/ 26 марта 2011

Собственные методы, использующие Android NDK, - это опция для участков кода, критичных к производительности. Это сложно и требует пристального внимания к проблемам совместимости, но может дать вам повышение производительности, которое вы ищете.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...