2011-01-26 4 views
0

Хорошо, я понимаю, что вопрос неясен, поэтому я поставлю некоторый контекст, и, возможно, я получу некоторые связанные с контекстом ответы.Как я могу надежно оценить эффективность алгоритмов отслеживания высоты тона на устройстве Android?

Я выполняю проект в прошлом году как часть моей Базы наук по вычислительной технике со степенью Maths, и мой выбранный проект - оценить алгоритмы отслеживания высоты тона, работающие на мобильном устройстве. Есть несколько стандартных алгоритмов, которые я могу реализовать на устройстве на базе Android.

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

Я обеспокоен тем, что мои выводы будут в значительной степени связаны с моей собственной реализацией этих алгоритмов. Как я могу найти или свести к минимуму неэффективность, которую я ввел?

Кроме того, существуют ли какие-либо проблемы с производительностью, связанные с математическими вычислениями на мобильных устройствах в целом, о которых я должен знать? Я читал, что целочисленная арифметика предпочтительнее, потому что значения с плавающей запятой не всегда поддерживаются процессором?

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

Я также ориентирован на программное обеспечение для оценки производительности, но не в направлении каких-либо конкретных приложений. Есть ли популярный выбор?

ответ

1

Что касается обнаружения и минимизации неэффективности ... существуют ли оценки алгоритмов отслеживания высоты тона на других типах систем? Возможно, вы можете использовать их в качестве ссылки для оценки вашей оценки (так сказать). То есть, может быть какая-то базовая проблема (проблемы), которая позволит вам увидеть, показывают ли ваши реализации очевидную предвзятость.

Возможно, лучше придерживаться целочисленной или фиксированной арифметики, поскольку некоторые (большинство?) Устройств не будут иметь процессоры с плавающей запятой. (Плавающие вычисления вычисляются в программном обеспечении на этих платформах.) Разумеется, справедливо также расследовать компромиссы между плавающей точкой и нет. Вы даже можете реализовать один и тот же алгоритм двумя способами, просто чтобы изучить эту проблему.

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

+0

Идея исследования компромиссов с целым числом/с плавающей запятой - интересная перспектива, хотя я подозреваю, что у меня недостаточно оборудования для ее проверки. Однако я думаю, что все еще есть заслуга в этом. Конечно, я задаюсь вопросом о эталонных реализациях: многие из них будут работать на моей машине i7 без проблем, но можно ли, например, легко сравнить латентность? Я не уверен, что буду ожидать, что я буду смотреть на те же коэффициенты латентности на ПК, как и на мобильный телефон. Мне пришлось бы учитывать «расход» операций на процессорах, которые я использую. –

+0

На самом деле, я имел в виду немного другое использование для эталонных реализаций. Если алгоритмы A и B примерно эквивалентны в соответствии с некоторыми существующими наборами тестов, но ваша реализация имеет A значительно превосходящую B, что предполагает, что вы должны исследовать возможность того, что вы испортили реализацию B. (Конечно, всегда есть возможность что существующий тестовый набор прикрутил A, что было превосходным алгоритмом.) С такими вещами, как латентность, коэффициенты могут быть опасны, когда фиксированные, а также пропорциональные компоненты производительности. –