Показать сообщение отдельно
Старый 08.04.2023, 03:21   #21  
Товарищ ♂uatr is offline
Товарищ ♂uatr
Участник
Аватар для Товарищ ♂uatr
MCBMSS
 
268 / 829 (28) +++++++
Регистрация: 23.10.2012
Спасибо, словно на съемках Санта Барбара побывал - там действительно проблема с преобразованием...
...у винды есть вот такая функция QueryPerformanceFrequency
У утилиты есть конвертер "QueryPerfCounter" с функцией:
X++:
public static long ConvertQPFTimeToTicks(ulong QPFTime)
{
	if (!initialized)
	{
		if (!NativeMethods.QueryPerformanceFrequency(out mFrequency))
		{
			throw new InvalidOperationException();
		}
		initialized = true;
	}
	return (long)((double)QPFTime / (double)mFrequency * (double)multiplier);
}
Где для mFrequency может быть инициализирована значением по умолчанию из той самой функции. История на этом могла бы и закончиться (ну да, выдавало бы оно разные результаты на разных машинах), если бы не лог трассировки в комбинации с этой строкой "QueryPerfCounter.Frequency = e.Properties.TryGetValue<long>("PerfFreq");" желающей видеть данное свойство у каждого события лога.
Только не все логи события "XppUtilFuncEvent" (согласно статистике) желают заполнять данную информацию. Поэтому получаем mFrequency равное 0, а далее "силу бесконечности".
Миниатюры
Нажмите на изображение для увеличения
Название: parserdebug.jpg
Просмотров: 32
Размер:	280.4 Кб
ID:	13560