Спорно, но можно.
Загнался. Низзя.
Вид для печати
Ага, вот здесь: http://zx-pk.ru/showthread.php?t=21212
Если вкратце, это расплата за отсутствие медленной памяти и происходит оттого, что у процессора приоритет по доступу к памяти, и ULA берёт байты не когда ей хочется, а когда у неё получится.
Особенно чёткая иллюстрация в том же треде, вот тут: http://zx-pk.ru/showpost.php?p=596826&postcount=6
на три порядка больше чего?
Ты бы вначале разобрался что это за разброс, а потом бы выводы делал. Разброс этот возникает от того что фпс вычисляется через время между двумя соседними кадрами. А т.к. эмуляция спектрума требует 50 Гц, а развертка у дисплея обычно 60-100, то некоторые кадры приходится пропускать. Это значит что между первым и вторым кадром будет время t, а между вторым и третьим будет время 2*t (один кадр пропускается чтобы поддерживать 50 Гц). В итоге на одном кадре будет 75 Гц, а на другом 37 Гц, после усреднения получаем 50 Гц, которые будут колебаться. На самом деле при этом выдерживается четко 50 Гц.
Расчет фпс нужно переделать чтобы не вводил в заблуждение
---------- Post added at 01:46 ---------- Previous post was at 01:43 ----------
в ZXMAK2 такой-же точно разброс как и в unreal. Специально проверил - все тютелька в тютельку, один в один, по крайней мере при развертке дисплея 75 Гц. Методика измерения фпс другая, отсюда и разброс, о котором ты говоришь, см. выше. Это разброс измерения, а не реальный разброс.
Для любителей померять FPS, зачекинил код для точного измерения данного параметра. Для тех у кого нет компилятора, в аттачменте готовый exe-шник (остальные файлы брать из архива с релизом).
Есть правда одно замечание, замер фпс делается с помощью системного таймера, поэтому точность будет зависеть от его частоты. Во избежание влияния на систему эмулятор не меняет частоту системного таймера, а использует ту что доступна. Соответственно точность измерения будет зависеть от частоты системного таймера (обычно +-0.3 fps).