Andrey, начинайте в биллиард играть, не менее часа каждый день
Этот топик читают: Гость
Ответов: 8921
Рейтинг: 823
|
|||
карма: 19 |
|
Ответов: 16884
Рейтинг: 1239
|
|||
Леонид писал(а): начинайте в биллиард играть |
|||
карма: 25 |
|
Ответов: 1731
Рейтинг: 68
|
|||
[flood]Потом "банки" на руках будут [/flood]
|
|||
карма: 1 |
|
Ответов: 16884
Рейтинг: 1239
|
|||
Леонид,
|
|||
карма: 25 |
|
Ответов: 8921
Рейтинг: 823
|
|||
Tad, чуть было не поддался там же два канала, а тиковая переменная одна, получается 2*PI/(2*44100)=PI/44100, частоту-то в два раза меньше я определил бы
|
|||
карма: 19 |
|
Ответов: 16884
Рейтинг: 1239
|
|||
Леонид,
оптимизация в 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: Аккумуляторов пока нет |
|||
карма: 25 |
|
Ответов: 8921
Рейтинг: 823
|
|||
Tad, принято (за "запомнил" не ручаюсь )
|
|||
карма: 19 |
|
Ответов: 16884
Рейтинг: 1239
|
|||
карма: 25 |
| ||
файлы: 1 | code_25144.txt [2.5KB] [333] |
Ответов: 8921
Рейтинг: 823
|
|||
Tad, а rar-ом упаковать, а то примечания на кирилице кракозябрами, и из имеющегося выбора кодировок всё равно кракозябры
------------ Дoбавленo в 11.35: Не надо, появилось и UTF=8 (плохо смотрел ) |
|||
карма: 19 |
|
Гость
Ответов: 17029
Рейтинг: 0
|
|||
Редактировалось 5 раз(а), последний 2021-06-22 13:09:39 |
|||
карма: 0 |
|
Ответов: 16884
Рейтинг: 1239
|
|||
Выше я.
|
|||
карма: 25 |
|
Ответов: 8921
Рейтинг: 823
|
|||
Tad, так долго не включал 2 147 483 648/88200/3600=6.76 час; а вообще-то не прверял, сейчас проверю
|
|||
карма: 19 |
|
Ответов: 16884
Рейтинг: 1239
|
|||
Леонид, Так будет ещё быстрее считать.
|
|||
карма: 25 |
|
Ответов: 8921
Рейтинг: 823
|
|||
If (i mod 88200)=0 then _hi_onEvent(onError, i); 10 минут -- в норме
|
|||
карма: 19 |
|
Ответов: 16884
Рейтинг: 1239
|
|||
Леонид писал(а): 10 минут -- в норме |
|||
карма: 25 |
|