我有一个简单的视图来显示大约 2000 个客户(尚未寻呼,这是我流程的下一步)。
这是我的控制器部分:
public class CustomersController : Controller
{
private readonly MyModel _context;
public CustomersController(MyModel context)
{
_context = context;
}
// GET: Customers
public async Task<IActionResult> Index()
{
var customers = await _context.Customers.ToListAsync();
return View(customers);
}
}
和一个简单的视图:
@model IEnumerable<Customer>
@{ ViewData["Title"] = "Index"; }
<table class="table">
<thead>
<tr>
<th>
@Html.DisplayNameFor(model => model.Name)
</th>
<th></th>
</tr>
</thead>
<tbody>
@foreach (var item in Model) {
<tr>
<td>
@Html.DisplayFor(modelItem => item.Name)
</td>
</tr>
}
</tbody>
</table>
每当我刷新页面(返回相同的结果集)时,进程内存每次都会增加 20 到 30 MB。
下面是内存诊断的屏幕截图:快照 1 在第一页加载之前;快照 2 是在第一页加载之后;快照 3 是同一页面数十次重新加载后的结果...
我认为内存会保持不变,因为 DbContext 应该在每次请求时被释放,不是吗?
我做错了什么以及如何控制内存使用?
qq_花开花谢_0
宝慕林4294392
相关分类