Для полного просветления читать "То, что вам никто не говорил о многозадачности в Windows"
Я её раз десять читал.
Но кто когда про TimeBeginPeriod вспоминает?
Эта функция все-то навсего возвращает значение системной еременой Время ее выполниения -- ничтожно
Но это-таки *вызов*, с передачей управления, переключением конвейера, и т.д. А мой вариант - несколько машинных команд, безо всяких ветвлений. И, повторюсь, на три порядка точнее, что позволяет мерить *очень* короткие операции..
А вообще замер колчества тиков проца - стремное дело:
* процессоры имеют привычку менять свою частоту (Cool&Quiet например)
Во первых, она же не тысячу раз в секунду это делает. А у меня измеряется соотношение числа тактов к числу тактов - я частоту вообще не мерю никаким боком.
* Операционка имеет привычку перекидывать потоки с ядра на ядро. А у каждого ядра может быть свой счетчик тиков....
А). В таком случае мой метод даст откровенно бредовый результат, и всё сразу будет ясно.
Б). И как часто это происходит? Ей что, делать больше нечего, как потоки туда-сюда двигать?
Хотя то, что я замерял, никогда не длилось больше 50 милисекунд.
Короче, я подходил с игровой точки зрения, где все расчёты должны занимать лишь небольшую часть фрейма, а фрейм - в пределах 10..30 милисекунд.
Что касатается грамотности/безграмостности, то, хочу заметить, что ветка называется "Профилировщик для FPC", а не
Всё равно останусь при мнении, что GetTickCount для профайлинга никаким боком не годится - хоть нач асти меня режьте.