public static void Main(string[] args)
{
Console.WriteLine("Hello, World!");
var summary = BenchmarkRunner.Run();
}
public class ForzenTest
{
public Dictionary SampleDictionary { get; set; }
public FrozenDictionary SampleDictionaryFrozen { get; set; }
public Hashtable SampleDictionaryHashtable { get; set; }
public ForzenTest()
{
SampleDictionary = new Dictionary();
SampleDictionaryHashtable = new Hashtable();
for (var i = 1; i <= 10000; i++)
{
var guidStr = Guid.NewGuid().ToString("N") + "_" + i;
SampleDictionary.Add(i.ToString(), guidStr);
SampleDictionaryHashtable.Add(i.ToString(), guidStr);
}
SampleDictionaryFrozen = SampleDictionary.ToFrozenDictionary();
Console.WriteLine(SampleDictionary.Count + "," + SampleDictionaryFrozen.Count + "," + SampleDictionaryHashtable.Count);
}
[BenchmarkDotNet.Attributes.Benchmark]
public void TestDictionary()
{
for (var i = 1; i <= 100_000; i++)
{
var tmp = "";
SampleDictionary.TryGetValue("1999", out _);
}
}
[BenchmarkDotNet.Attributes.Benchmark]
public void TestDictionaryFrozen()
{
for (var i = 1; i <= 100_000; i++)
{
SampleDictionaryFrozen.TryGetValue("1999", out _);
}
}
[BenchmarkDotNet.Attributes.Benchmark]
public void TestDictionaryHashTable()
{
for (var i = 1; i <= 100_000; i++)
{
_ = SampleDictionaryHashtable["1999"];
}
}
}
Result:
結論就已取出來看的確是有壓倒性的勝利,如果以後需要 暫存在記憶體中查找的資料,可以使用這方法
--
Before you read this, the article was in a superposition of human and AI. Upon observation, the wave function collapsed into a sleep-deprived developer.