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