gpt4 book ai didi

c# - 如何衡量 C# 中哈希表的性能?

转载 作者:太空宇宙 更新时间:2023-11-03 17:19:33 26 4
gpt4 key购买 nike

我正在研究 C# 集合,我决定编写一个快速测试来衡量不同集合的性能。

我的性能测试是这样的:

int numOps= (put number here);
long start, end, numTicks1, numTicks2;
float ratio;

start = DateTime.Now.Ticks;

for(int i = 0; i < numOps; i++)
{
//add two elements to collection #1
//remove one element from collection #1
}

end = DateTime.Now.Ticks;

numTicks1 = end - start;


start = DateTime.Now.Ticks;

for(int i = 0; i < numOps; i++)
{
//add two elements to collection #2
//remove one element from collection #2
}

end = DateTime.Now.Ticks;

numTicks2 = end - start;

ratio = (float)numTicks2/(float)numTicks1;

然后我使用不同的 Collections 和不同的 numOps 值比较比率值,看看它们如何比较。

问题是有时当我使用足够小的数字(numOps = 500)时,Hashtable 和 List 之间的测试结果是零星的(换句话说,这是一个更快的硬币翻转)。谁能解释这是为什么?

编辑:谢谢大家!秒表就像一个魅力。

最佳答案

试着看看 StopWatch类而不是使用 DateTime

这个例子直接来自 MSDN

    Stopwatch stopWatch = new Stopwatch();
stopWatch.Start();
Thread.Sleep(10000); //your for loop
stopWatch.Stop();
// Get the elapsed time as a TimeSpan value.
TimeSpan ts = stopWatch.Elapsed;

// Format and display the TimeSpan value.
string elapsedTime = String.Format("{0:00}:{1:00}:{2:00}.{3:00}",
ts.Hours, ts.Minutes, ts.Seconds,
ts.Milliseconds / 10);
Console.WriteLine(elapsedTime, "RunTime");

关于c# - 如何衡量 C# 中哈希表的性能?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1303029/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com