Цитата(Sam @ 7.1.2007, 13:12)
«while ((loops_per_sec <<= 1)) {
ticks = clock();
delay(loops_per_sec);
ticks = clock() - ticks;
if (ticks >= CLOCKS_PER_SEC) {
loops_per_sec = (loops_per_sec / ticks) * CLOCKS_PER_SEC;
гм... нельзя ли избавиться от одного из вызовов clock()?
а вот здесь стопудово оптимизировать можно:
Цитата(Sam @ 7.1.2007, 13:12)
«loops_per_sec = (loops_per_sec / ticks) * CLOCKS_PER_SEC;
здесь компилятор строит очень медленный код - вызывается, по-моему, внутренняя функция _ftol(), для перевода float в int, что замедляет процесс (очень медленная функция).
лучше сразу тип double использовать - современные процессоры работают с плавающей точкой чуть ли не быстрее чем с целыми числами.