小编Tho*_*mas的帖子

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

ImmutableList从NuGet软件包Microsoft.Bcl.Immutable版本1.0.34以及1.1.22-beta中体验Microsoft的一些意外性能

从不可变列表中删除项目时,性能非常慢.对于ImmutableList包含20000个整数值(1 ... 20000),如果开始从值20000移除到1,则从列表中删除所有项目大约需要52秒.如果我使用泛型List<T>,我在每次删除操作后创建列表的副本,它需要大约500毫秒.

我对这些结果感到有些惊讶,因为我认为这ImmutableList比复制仿制品更快List<T>,但也许这是可以预料的?

示例代码

// Generic List Test
var genericList = new List<int>();

var sw = Stopwatch.StartNew();
for (int i = 0; i < 20000; i++)
{
    genericList.Add(i);
    genericList = new List<int>(genericList);
}
sw.Stop();
Console.WriteLine("Add duration for List<T>: " + sw.ElapsedMilliseconds);
IList<int> completeList = new List<int>(genericList);

sw.Restart();

// Remove from 20000 -> 0.
for (int i = completeList.Count - 1; i >= 0; i--)
{
    genericList.Remove(completeList[i]);
    genericList …
Run Code Online (Sandbox Code Playgroud)

c# performance immutability immutablelist

5
推荐指数
1
解决办法
1168
查看次数

自托管Webapi时如何设置HTTP请求队列长度?

运行ASP.NET WebApi,我想设置HTTP请求队列的长度。

我在OwinHttpListenermsdn文档中发现了一些博客,指出这应该可行。

所以我用这种方法来获取OwinHttpListner

public void Configuration(IAppBuilder appBuilder)
{
    HttpConfiguration config = new HttpConfiguration();
    var owinListenerName = "Microsoft.Owin.Host.HttpListener.OwinHttpListener";
    var owinListener = (OwinHttpListener)appBuilder.Properties[owinListenerName];
    // more code...
}
Run Code Online (Sandbox Code Playgroud)

但是方法SetRequestQueueLimit不存在。使用ILSpy还表明该类上没有此类内部方法。

我正在使用nuget包Microsoft.Owin.Host.HttpListener 2.0.2

我在这里想念什么?

.net c# asp.net-web-api

2
推荐指数
1
解决办法
1457
查看次数