Я реализовал андроид FFT гитарный тюнер. Здесь у меня есть 2 текстовых вида, 1 для отображения частоты звука, поступающего с микрофонного порта, а другой 1 для отображения нотации высоты тона. Чтобы соответствовать частоте, я написал условие if, которое имеет около 35, если else, если условия состоят из 150 строк (приблизительно). Теперь, когда слышен звук, значение обновляется в текстовом виде с частотной характеристикой, но текстовое представление табуляции становится запоздалым для обновления, так как перед обновлением текстового представления существует так много условий, поэтому, когда условия проверяются , повторное отображение частотного текста может измениться и обновиться. Что я могу сделать, чтобы избавиться от этой проблемы? Конечный результат не efficient..Please помочь мне с этим ...Увеличение производительности
if(frequency >= 62 && frequency <= 65)
{
note.setText("C");
}
else if(frequency >= 70 && frequency <= 74)
{
note.setText("C#");
}
else if(frequency >= 77 && frequency <= 81)
{
note.setText("D");
}
else
{
note.setText("Frequency is out of range");
}
Если вы хотите получить более чистый код, рассмотрите инструкцию 'switch' вместо ... – Jon
Вы уверены, что это сложность if-утверждения, вызывающего медленность? Вы приурочили, сколько времени он принимает для выполнения всех условий? Если вы этого не сделали, сделайте это, прежде чем продолжить. Вы можете потратить много времени на оптимизацию фрагментов кода, которые фактически не вызывают проблем с производительностью, которые вы видите.Я говорю это по опыту :) – jacobm
Является ли оператор switch быстрее, чем если условие? и я не пытался проверять время на выполнение. Но так как частота изменяется в каждую секунду (может быть, миллисекунду), я думал, что условия отсутствия: могут повлиять на создание вывода ... –