У меня есть приложение. NET Core 2.2 web API. Он возвращает довольно большие порции данных JSON для веб-приложения, которое в основном отключено от сервера.
Во всем приложении я возвращаю объекты System.Data.DataTable из контроллеров. Запрос может быть обработан так:
[HttpGet]
public ActionResult<Dictionary<string, object>> Orders(string stuff, DateTime? start, DateTime? end)
{
var ret = new Dictionary<string, object>();
var pending_data = new DataTable();
using (SqlCommand cmd = new SqlCommand("select stuff from stuff", connection)) {
using (SqlDataReader rdr = cmd.ExecuteReader()) {
pending_data.Load(rdr);
}
}
ret.Add("pending_orders", pending_data);
return Ok(ret);
}
Будет ли возвращение таблиц DataTable, подобных этой, создавать утечку ресурсов? Я сейчас тестирую, и использование памяти кажется выше, чем я ожидал. Возможно, мне придется написать некоторый тестовый код, который вручную вызывает G C, чтобы увидеть базовый уровень после каждого запроса.