我有一个问题,内存没有得到释放在我的.NET核心Web API。我所做的只是从静态类中返回一个字符串。内存不能释放在Asp.Net核心api
API:
[HttpGet]
public string Get()
{
return A.get();
}
public static class A
{
public static string get()
{
return "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa";
}
}
客户:
HttpClient hc = new HttpClient();
for(int i=0;i<100000;i++)
{
//var v = hc.GetAsync("http://localhost:52425/api/values").result;
hc.GetStringAsync("http://localhost:52425/api/values");
if(i%1000 == 0)
{
Thread.Sleep(10000);
Console.WriteLine("Sleeping-----------" + i);
}
}
我已经试过没有静态类直接从action方法返回的字符串。我也尝试以同步方式而不是异步方式从客户端调用API。这些没有任何区别。
这个屏幕截图显示了GC被调用了一次,但没有帮助清理内存。
下面是诊断升级到2.0和禁用遥测信息后:
您使用的是什么版本的.NET Core? –
另外,你在IIS或Kestrel上运行WebAPI吗? –
我正在使用netcore1.2,我在IIS上运行。上面的代码在cloudfoundry上运行时,256k的RAM会抛出OOM异常 – VKR