This time you will get an error with "TimeStamps.Keys[0]". To get the key at index 0, you have to copy the "keys" to a temporary array.
DIGY. -----Original Message----- From: x...@mail.ru [mailto:x...@mail.ru] Sent: Tuesday, August 18, 2009 5:24 PM To: lucene-net-dev@incubator.apache.org Subject: Re: [jira] Updated: (LUCENENET-190) 2.4.0 Performance in TermInfosReader term caching (New implementation of SimpleLRUCache) Digy wrote: > SortedDictionary does not have a getter with index (like Data[Index]). In a > SortedList, Data[0] is always the LRU item. > > I didn't find any use of index access for SortedList (TimeStamps) except of : if (Data.Count > Capacity) { long key = TimeStamps.Keys[0]; Data.Remove(TimeStamps[key]); TimeStamps.RemoveAt(0); <------------- } In case of SortedDictionary it can be replaced by: if (Data.Count > Capacity) { long key = TimeStamps.Keys[0]; Data.Remove(TimeStamps[key]); TimeStamps.Remove(key); } Am I missed something? --- Andrei > I got much more better results with RedBlackCS.RedBlack ( > http://www.codeproject.com/KB/recipes/redblackcs.aspx ) but it is huge and > there may be licensing problems. > > > DIGY. > > > -----Original Message----- > From: x...@mail.ru [mailto:x...@mail.ru] > Sent: Tuesday, August 18, 2009 4:51 PM > To: lucene-net-dev@incubator.apache.org > Subject: Re: [jira] Updated: (LUCENENET-190) 2.4.0 Performance in > TermInfosReader term caching (New implementation of SimpleLRUCache) > > SimpleLRUCache_LUCENENET_190 uses SortedList<long, object> collection. > > Performance of SortedList (see > http://msdn.microsoft.com/en-us/library/ms132339.aspx): > 1) Add method is an O(n) operation for unsorted data. It is an O(log n) > operation if the new element is added at the end of the list. > If insertion causes a resize, the operation is O(n). > 2) Remove method method is an O(n) operation > 3) RemoveAt method is an O(n) operation > 4) Keys property is an O(1) operation > > Why not to use SortedDictionary<>? It has better performance for Remove and > Add: > > 1) Add method is an O(log n) operation > > 2) Remove method is an O(log n) operation > > 3) Keys property is an O(1) operation > > > <http://www.garweb.ru>