войти зарегистрироваться

AMDВременной парадокс в многоядерных процессорах AMD

Наконец-то разобрался с проблемой, мучавшей меня с самой покупки нового компьютера.
В некоторых играх (Neverwinter nights 1/2; SW: KoToR 1/2; WarCraft 3; Avatar) графика прыгала, будто пропускалась большая часть кадров, в Bully слишком быстро шло время — час игрового времени пролетал за пару секунд (минутная стрелка на часах не доходила даже до 10 минут и время уходило на час вперёд). В 2007-м думал на дрова, их менял, обновлял DirectX — ноль эмоций. В 2008-м думал на Windows, переустанавливал — всё оставалось как прежде. В 2009 на видеокарту, но уже третью поставил, и всё равно результата НОЛЬ, хотя предыдущем компьютере те же самые игры работали нормально (из тех, которые вообще запускались на 256 МБ ОЗУ). Единственный глюк в компьютере кроме прыгающей графики был только в трейсерте и ping.exe — иногда выдавались ненормально большие числа мс (больше миллиарда) и даже отрицательные. Так как пинг, по моему мнению, никак не был связан с графикой, я не считал, что причина глюков в одном и том же месте.

DelphiТочное время: измеряем, применяем

   Цель данной статьи – изложить, полученный в ходе работы над проблемой материал о способах максимально точного измерения времени и использования на практике этих способов, а также рассмотреть варианты управления чем-либо программным с максимально достижимой точностью.

   Статья рассчитана на читателей, уже имеющих некоторый опыт в программировании, и заметивших проблему точности выдержки временных интервалов стандартных функций. Автор статьи, begin_end, советует её читателям, программирующим на языке Delphi, так как все способы реализуются именно на этом языке.

   Наша задача – найти лучший метод точного измерения малых временных интервалов (желаемая точность – 10^-6 секунды), определить наиболее эффективный способ программирования задержек в исполнении кода, с такой же точностью.

   Программист, который уже пробовал разрабатывать различные прикладные приложения, например, связанные с передачей данных или с генерацией/анализом сигналов мог заметить, что все стандартные функции (sleep, beep, GetTickCount, таймеры) обладают большой погрешностью при работе с малыми значениями временного интервала.