Мне Gaidar подсказал как решить проблему в С#.
Я же сейчас переписал все из C# на VB, кроме этой подсказки.
Может поможешь.
VladD2 написал тут как-то класс:
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);
}
}
Использовать его нужно так:
Код:
// Где нибудь объявляем переменную...
PerfCounter timer = new PerfCounter();
timer.Start(); // Начало замера
// тестируемый код...
// Выводим результат в консоль.
Console.WriteLine("Время выполнения в секундах: {0:### ### ##0.0000}", timer.Finish());
// Одну переменную можно использовать многократно.
Нужно переписать структуру на VB или придумать как ее использовать в проекте VB в своем виде.
Заранее спасибо.