Журнал с отметками времени с точностью до миллисекунды и разрешением в Windows C ++

Я знаю, что для точности времени такие функции, как timeGetTime, timeBeginPeriod, QueryPerformanceCounter и т. д. великолепны, обеспечивая хорошее разрешение и точность, но только на основе времени с момента загрузки, без прямой связи с часами.

Однако я не хочу измерять время событий как таковых. Я хочу иметь возможность создавать точную метку времени (местное время), чтобы я мог отображать ее в файле журнала, например, 31-12-2010 12: 38: 35.345 для каждой сделанной записи. (Мне нужна точность до миллисекунды)

Стандартные функции времени Windows, такие как GetLocalTime, хотя и дают значения в миллисекундах, не имеют разрешения в миллисекундах, в зависимости от работающей ОС. Я использую XP, поэтому не могу ожидать большего, чем разрешение примерно 15 мс.

Мне нужен способ получить лучшее из обоих миров, не создавая больших накладных расходов для получения требуемого результата. Чрезмерно большие методы / вычисления означают, что регистратор начнет занимать слишком много времени во время своей работы.

Каким будет лучший / самый простой способ сделать это?

8
задан Dave 31 December 2010 в 12:51
поделиться