|
AspCore течет память при интенсивном парсинге Json-документов
|
|||
---|---|---|---|
#18+
vb_sub такой же скачек есть. Это скачок при вообще самом первом вызове HTTP GET. То что до него - это просто запущеное приложение до каких бы то ни было запросов. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.02.2021, 15:18 |
|
AspCore течет память при интенсивном парсинге Json-документов
|
|||
---|---|---|---|
#18+
fkthat, при единичном и первом вызове HTTP GET отъедает около 3 мб в моем примере и скачка нет. Код: c# 1. 2. 3. 4. 5. 6.
... |
|||
:
Нравится:
Не нравится:
|
|||
28.02.2021, 16:16 |
|
AspCore течет память при интенсивном парсинге Json-документов
|
|||
---|---|---|---|
#18+
... |
|||
:
Нравится:
Не нравится:
|
|||
28.02.2021, 16:16 |
|
AspCore течет память при интенсивном парсинге Json-документов
|
|||
---|---|---|---|
#18+
... |
|||
:
Нравится:
Не нравится:
|
|||
28.02.2021, 17:46 |
|
AspCore течет память при интенсивном парсинге Json-документов
|
|||
---|---|---|---|
#18+
fkthat, перед запросом около 76, после выполнения-80. Я имел ввиду прирост потребления. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.02.2021, 18:36 |
|
AspCore течет память при интенсивном парсинге Json-документов
|
|||
---|---|---|---|
#18+
vb_sub fkthat, перед запросом около 76, после выполнения-80. Я имел ввиду прирост потребления. Ну так конечно - у тебя один запрос выполняется, а у меня 100. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.02.2021, 18:38 |
|
AspCore течет память при интенсивном парсинге Json-документов
|
|||
---|---|---|---|
#18+
vb_sub fkthat, такой же скачек есть. Нашел решение форк можно закрыть. Код: c# 1. 2. 3. 4. 5. 6. 7. 8.
единственный минус- нельзя использовать для десериализации Utf8JsonReader. ну так ты засчет HttpCompletionOption.ResponseHeadersRead и убираешь доп аллокацию давно известная история..просто ты начал с истории что объекты по 4мб вот и сходу я и сказал про Loh ... |
|||
:
Нравится:
Не нравится:
|
|||
28.02.2021, 20:59 |
|
AspCore течет память при интенсивном парсинге Json-документов
|
|||
---|---|---|---|
#18+
fkthat vb_sub fkthat, перед запросом около 76, после выполнения-80. Я имел ввиду прирост потребления. Ну так конечно - у тебя один запрос выполняется, а у меня 100. Это в ответ на твое сообщение, что скачек памяти больше чем на 100 мб происходит при отправке первого запроса- как видишь нет. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.03.2021, 07:08 |
|
AspCore течет память при интенсивном парсинге Json-документов
|
|||
---|---|---|---|
#18+
handmadeFromRu vb_sub fkthat, такой же скачек есть. Нашел решение форк можно закрыть. Код: c# 1. 2. 3. 4. 5. 6. 7. 8.
единственный минус- нельзя использовать для десериализации Utf8JsonReader. ну так ты засчет HttpCompletionOption.ResponseHeadersRead и убираешь доп аллокацию давно известная история..просто ты начал с истории что объекты по 4мб вот и сходу я и сказал про Loh Я экспериментировал и с малыми объектами запроса, чтобы они сразу в LOH не попадали, однако в действительности происходит как будто аккумулятивный эффект, после определенного значения происходит скачек потребления памяти. В профайлере памяти этот объект назывался HttpContent, который рос в зависимости от количества запросов. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.03.2021, 07:12 |
|
AspCore течет память при интенсивном парсинге Json-документов
|
|||
---|---|---|---|
#18+
fkthat Вот такой код: Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9.
Вот такая картинка: С виду все ровно - мусорщик регулярно вызывается, расход памяти не растет. Очень странно здесь ты используешь using для HttpClient, а годом раньше говорил, что нельзя так делать fkthat asp.net core 3.1 HttpClient Error while copying content to a stream. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.03.2021, 10:19 |
|
AspCore течет память при интенсивном парсинге Json-документов
|
|||
---|---|---|---|
#18+
vb_sub что нельзя так делать Нет, я там имел в виду вовсен не using. Его использовать можно, хоть он ни на что и не влияет. Нельзя на каждый вызов создавать HttpClient (кроме случая, когда для его создания используется HttpClientFactory). Суть там в том, что сам по себе HttpClient мало что делает, а является оберткой поверх HttpClientHandler. Если на каждый вызов создается новый HttpClient (через new), то для него создается и новый HttpClientHandler, что, собственно, и приводит к неприятным последствиям. Если же для создания используется HttpClientFactory, то повторно используются HttpClientHandler из его пула и все нормально. Другой способ, как я выше сказал - это просто создать HttpClient один раз как singleton и использовать везде его, но он как-то смотрится не очень хорошо - с фабрикой все красивее и дает дополнительные возможности (например именованные HttpClient). ... |
|||
:
Нравится:
Не нравится:
|
|||
01.03.2021, 12:37 |
|
AspCore течет память при интенсивном парсинге Json-документов
|
|||
---|---|---|---|
#18+
fkthat HttpClient один раз как singleton и использовать везде его, но он как-то смотрится не очень хорошо - с фабрикой все красивее и дает дополнительные возможности (например именованные HttpClient) Если планируется использовать в multiple threads, то не стоит использовать один экземпляр, хотя основные методы потокобезопасны, нельзя сказать это в отношении любых кастомных хендлеров. Конечно же только IHttpClientFactory ) ... |
|||
:
Нравится:
Не нравится:
|
|||
01.03.2021, 14:09 |
|
|
start [/forum/topic.php?fid=18&msg=40049449&tid=1354568]: |
0ms |
get settings: |
12ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
43ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
51ms |
get tp. blocked users: |
1ms |
others: | 263ms |
total: | 407ms |
0 / 0 |