Народ, я смотрю вы пользуете класс PerCounter. а где он находится и как его
взять, в стандартном фреймворке я что-то не нарыл
---------------------------------------
WBR, Michael U. Charny AKA McHarny
McHarny@mailops.com, McHarny@msk.orw.ru
=======================================
¦ Спирт, клофелин и димедрол — именно эти три компонента делали Айболита добрым
Здравствуйте, McHarny, Вы писали:
MH>Hello, All!
MH>Народ, я смотрю вы пользуете класс PerCounter. а где он находится и как его MH>взять, в стандартном фреймворке я что-то не нарыл
MH>--------------------------------------- MH>WBR, Michael U. Charny AKA McHarny MH>McHarny@mailops.com, McHarny@msk.orw.ru MH>======================================= MH>¦ Спирт, клофелин и димедрол — именно эти три компонента делали Айболита добрым
Здравствуйте, McHarny, Вы писали:
MH>Народ, я смотрю вы пользуете класс PerCounter. а где он находится и как его MH>взять, в стандартном фреймворке я что-то не нарыл
В стандартном будет только в 2.0. А пока вот ( (С) Влад):
using System;
using System.Runtime.InteropServices;
namespace Utils
{
/// <summary>
/// Эта структура позволяет подсчитать скорость выполнения кода одним из
/// наиболее точным способов. Фактически вычисления производятся в тактах
/// процессора, а потом переводятся в милисекунд (десятичная часть
/// является долями секунды).
/// </summary>public struct PerfCounter
{
Int64 _start;
/// <summary>
/// Начинает подсчет вермени выполнения.
/// </summary>public void Start()
{
_start = 0;
QueryPerformanceCounter(ref _start);
}
/// <summary>
/// Завершает полсчет вермени исполнения и возвращает время в секундах.
/// </summary>
/// <returns>Время в секундах потраченое на выполнение участка
/// кода. Десятичная часть отражает доли секунды.</returns>public float Finish()
{
Int64 finish = 0;
QueryPerformanceCounter(ref finish);
Int64 freq = 0;
QueryPerformanceFrequency(ref freq);
return (((float)(finish - _start) /(float)freq));
}
[DllImport("Kernel32.dll")]
static extern bool QueryPerformanceCounter(ref Int64 performanceCount);
[DllImport("Kernel32.dll")]
static extern bool QueryPerformanceFrequency(ref Int64 frequency);
}
}
P.S. я бы заменил в интеропных методах ref на out.
Здравствуйте, McHarny, Вы писали:
MH>Народ, я смотрю вы пользуете класс PerCounter. а где он находится и как его MH>взять, в стандартном фреймворке я что-то не нарыл
Здравствуйте, VladD2, Вы писали:
VD>Здравствуйте, McHarny, Вы писали:
MH>>Народ, я смотрю вы пользуете класс PerCounter. а где он находится и как его MH>>взять, в стандартном фреймворке я что-то не нарыл
VD>Точное измерение производительности в дотнете
Здравствуйте, Павел Леонов, Вы писали:
ПЛ>Можно менять контент циклов, но разница сохраняется. Что там может происходить, или просто железо такое?
1. Это слишком малая величина для измерений.
2. В начеле запуска приложения дотнет инициализирует свои дела. Попробуй просто вставить Sleep на секунду.
... << RSDN@Home 1.1.4 beta 1 >>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.