Persistent Dictionary
Key Features:
A data structure implementation similar to Dictionary in .NET.
- Writes objects to file system to preserve the memory
- Hold keys/locations in memory
- Retrieves any object by passing key in less than five milliseconds
Output, with 10000 inserts/updates/deletes:
Memory profiling:
http://persistentdictionary.codeplex.com
A data structure implementation similar to Dictionary in .NET.
- Writes objects to file system to preserve the memory
- Hold keys/locations in memory
- Retrieves any object by passing key in less than five milliseconds
Output, with 10000 inserts/updates/deletes:
Memory profiling:
1: using (CPersistentDictionary lst = new CPersistentDictionary(@"C:\persist.kkhan"))
2: {3: Stopwatch timer = new Stopwatch();
4: 5: //1. Insert/update items
6: 7: int threshold = 10000;
8: timer.Start();
9: for (int i = 0; i < threshold; i++)
10: {11: lst.Add("Counter" + i.ToString(), i.ToString());
12: } 13: timer.Stop();14: Console.WriteLine("Items processed(add):{0}", threshold);
15: Console.WriteLine("Time elapsed in (ms):{0} ({1} secs)", timer.ElapsedMilliseconds, TimeSpan.FromMilliseconds(timer.ElapsedMilliseconds).Seconds);
16: 17: 18: //2. Read items
19: timer.Start();
20: for (int i = 0; i < threshold; i++)
21: { 22: var o = lst["Counter" + i.ToString()]; 23: } 24: timer.Stop();25: Console.WriteLine("Items processed(read):{0}", threshold);
26: Console.WriteLine("Time elapsed in (ms):{0} ({1} secs)", timer.ElapsedMilliseconds, TimeSpan.FromMilliseconds(timer.ElapsedMilliseconds).Seconds);
27: 28: 29: //3. Remove items
30: timer.Start();
31: for (int i = 0; i < threshold; i++)
32: { 33: lst.Remove("Counter" + i.ToString()); 34: } 35: timer.Stop(); 36: Console.WriteLine("Items processed(Remove):{0}", threshold);37: Console.WriteLine("Time elapsed in (ms):{0} ({1} secs)", timer.ElapsedMilliseconds, TimeSpan.FromMilliseconds(timer.ElapsedMilliseconds).Seconds);
38: 39: 40: 41: Console.ReadKey(); 42: }http://persistentdictionary.codeplex.com