Tag: immutablelist

ImmutableList 中的性能降低Microsoft.Bcl.Immutable中的删除方法

从NuGet包Microsoft.Bcl.Immutable版本1.0.34以及1.1.22-beta中体验Microsoft ImmutableList一些意外性能 从不可变列表中删除项目时,性能非常慢。 对于包含20000个整数值(1 … 20000)的ImmutableList ,如果开始从值20000移除到1,则从列表中删除所有项目大约需要52秒。 如果我使用通用List执行相同操作,我在每次删除操作后创建列表副本大约需要500毫秒。 我对这些结果感到有些惊讶,因为我认为ImmutableList比复制通用List更快,但也许这是预期的? 示例代码 // Generic List Test var genericList = new List(); var sw = Stopwatch.StartNew(); for (int i = 0; i < 20000; i++) { genericList.Add(i); genericList = new List(genericList); } sw.Stop(); Console.WriteLine(“Add duration for List: ” + sw.ElapsedMilliseconds); IList completeList = new List(genericList); sw.Restart(); // Remove […]