оптимизация в Delphi писал(а):
Не используйте конструкции типа a:=10*sin(45*pi/180); Delphi не вычислит эту константу на этапе компиляции, напротив, будет послушно вызывать sin и pi по ходу выполнения программы! В случае, если угол является переменной, по крайней мере pi желательно заменить константой 3,1415...Delphi прекрасно справляется с выражениями, полностью составленных из констант – они вычисляются на этапе компиляции.
В Вашем случае объявление константой выражения PI/44100, вычислит его при компиляции и дальше будет подставлять в коды уже готовое 7,12358276e-5
Если бы Ваша формула имела вид
_Freq1 := (toInteger(_Data) * PI) / 44100;, то я бы просто посоветовал изменить
_Freq1 := (toInteger(_Data) * 3.1415) / 44100;
В данной схеме ускорение работы программы не нужно, но если где-то в цикле, то можно выиграть даже очень неплохо.
------------ Дoбавленo в 18.46:
Это не ошибка, просто "птичку жалко".
------------ Дoбавленo в 18.56:
Ещё одно
оптимизация в Delphi писал(а):
Наиболее распространенный недочет – условие цикла записывается как:for i:=0 to count – 1 do...
Delphi будет при каждой итерации вызывать метод count, вычитать из результата 1 и потом уже сверять. Настоятельно рекомендуется переписывать подобный код как
lin := count – 1;
for i:=0 to lin do...
------------ Дoбавленo в 19.05:
Аккумуляторов пока нет