Измерение скорости поиска в ListDictionary - C#
Формулировка задачи:
Добрый вечер, подскажите, как практически узнать скорость поиска в ListDictionary.
Наример:
Заполнили 10к значениями, а как узнать скорость поиска в мсек?
Поиск осуществлять через Contains?
Random rand = new Random();
ListDictionary dic = new ListDictionary();
for (int i = 0; i < 10000; ++i) {
int n = rand.Next(0, 100);
dic.Add(i, "[" + n + "]");
}
Так не получается:
public static long PrintTime(IDictionary myCol)
{
long time_;
long start =(long)(DateTime.Now - new DateTime(1970, 1, 1)).TotalMilliseconds;
if (myCol.Contains(676)) {
long stop=(long)(DateTime.Now - new DateTime(1970, 1, 1)).TotalMilliseconds;
return time_=stop-start;
}
return -1;
}Решение задачи: «Измерение скорости поиска в ListDictionary»
textual
Листинг программы
public static void PrintTime(IDictionary myCol, int nk)
{
if (!myCol.Contains(nk)) return;
Stopwatch stopwatch = Stopwatch.StartNew();
const int iterations = 100000-1;
int count = 0;
for (int i=0; i<iterations; i++)
{
if (myCol.Contains(nk))
{
// Выполняем действие внутри if чтобы JIT компилятор не выполнял оптимизаций вызова
count++;
}
}
Console.WriteLine(stopwatch.Elapsed/iterations);
Console.WriteLine();
}