небольшое описание:
Метод собирает все записные книжки пользователя и возвращает их.
Он распознает пользователя по BearerToken .
Вот код, который вызывается, но при этом на каждый запрос потребляется и никогда не освобождается еще несколько килобайт оперативной памяти:
GetCurrentUser:
Код: Выделить всё
public static async Task GetCurrentUser(DataBaseContext _db, string bearerToken)
{
//get from the bearer token the username
//create jwt token
var token = new JwtSecurityToken(jwtEncodedString: bearerToken);
//get the expiry from the token
var userName = token.Claims.FirstOrDefault(x => x.Type == ClaimTypes.NameIdentifier)?.Value;
//get the whole user form the db
var user = _db.User
.Include(x => x.Invoices)
.Include(x => x.Notebook)
.Include(x => x.Logins)
.FirstOrDefaultAsync(x => x.Username == userName);
return await user;
}
Код: Выделить всё
private async Task GetCurrentUser()
{
// Get the bearer token from the header
var bearerToken = HttpContext.Request.Headers["bearerToken"].ToString();
var user = await UserCore.GetCurrentUser(_db, bearerToken);
return user;
}
[HttpGet]
[Route("GetAll")]
public async Task GetAll()
{
//set the users traceId
Guid traceId = Guid.NewGuid();
//get the user
var user = await GetCurrentUser();
if (user == null)
return new BadRequestObjectResult(ResponseMgr.CreateResponse(400, traceId, "The user does not exist"));
//get all notes
var notes = user.Notebook.ToList();
//return all notes
return new OkObjectResult(ResponseMgr.CreateResponse(200, traceId, "All notes", new Dictionary { { "notes", notes } }));
}


Это одна из вещей, которые я не понимаю: это список с «повторяющимися строками», в первом столбце указано «значение», во втором «потеряно» и в третьем «количество». " и внизу "всего"
Дело в том, что смайлы - это содержимое/ценность одного блокнота, но почему он сохраняет данные и не освобождает их после запроса, поэтому Подводя итог, я нашел утечку, но не там, где она произошла.

Все в одном, я не могу найти местоположение, и если я сделаю запрос 50 раз, то API потребляет несколько МБ ОЗУ, и они освободят, даже если GC не сможет этого сделать. п>
Подробнее здесь: https://stackoverflow.com/questions/766 ... -sharp-api
Мобильная версия