C этими дилеями я уже собаку съел ))) Так вот скажу следующее: на макросной мышке погрешность выполнения дилея всегда стабильная и составляет примерно +1мс. Хотя на разных производителях по разному. А вот когда начинаешь вызывать дилея программно в операционной системе, тут ждет тебя огромный сюрприз =) на каждом компьютере погрешность очень разная.
Вот тесты на примере 1го компьютера:
Sleep(0) = 0,001
Sleep(1) = 0,776 - -22,43%
Sleep(10) = 9,803 - -1,97%
Sleep(100) = 99,625 - -0,37%
Sleep(0)x100 = 0,017
Sleep(1)x100 = 99,878 - -0,12%
Sleep(10)x100 = 999,704 - -0,03%
Sleep(5)x50 = 249,636 - -0,15%
Вот тесты на примере 2го компьютера:
Sleep(0) = 0,002
Sleep(1) = 1,453 - 45,28%
Sleep(10) = 10,127 - 1,27%
Sleep(100) = 100,330 - 0,33%
Sleep(0)x100 = 0,020
Sleep(1)x100 = 142,031 - 42,03%
Sleep(10)x100 = 1011,100 - 1,11%
Sleep(5)x50 = 266,900 - 6,76%
Функция Sleep - это системная функция вызова задержки в ОС.
Теперь проведем те же тесты только с моей собственной функцией:
[b1ый компьютер:[/b]
Delay(0) = 0,008
Delay(1) = 1,002 - 0,19%
Delay(10) = 10,002 - 0,02%
Delay(100) = 100,002 - 0,00%
Delay(0)x100 = 0,027
Delay(1,00)x100 = 100,111 - 0,11%
Delay(10,00)x100 = 1000,180 - 0,02%
Delay(5,00)x50 = 250,060 - 0,02%
Мин. точность без загрузки CPU: 1,53 ms
[b2ой компьютер:[/b]
Delay(0) = 0,005
Delay(1) = 1,002 - 0,20%
Delay(10) = 10,003 - 0,03%
Delay(100) = 100,003 - 0,00%
Delay(0)x100 = 0,016
Delay(1,00)x100 = 100,077 - 0,08%
Delay(10,00)x100 = 1000,166 - 0,02%
Delay(5,00)x50 = 250,071 - 0,03%
Мин. точность без загрузки CPU: 2,11 ms
Выводы делайте сами.