Skip to content

Ненужная заведомо безуспешная попытка десериализации ответа #11

@LyohaLyoha

Description

@LyohaLyoha

Метод protected async Task ExecuteRequestAsync
Вызывается при long polling, как await ExecuteRequestAsync

При этом внутри он сначала пытается (безуспешно, само собой) десериализовать ответ как MaxJsonSerializer.Deserialize<Response>
И только после того как это не удается - как MaxJsonSerializer.Deserialize
Зачем?

Ведь в самом начале метода уже есть вызов typeof(T), который уже отработал в любом случае.
Почему бы не положить его результат в локальную переменную, и не вызывать сразу MaxJsonSerializer.Deserialize, если typeof(T)==typeof(GetUpdatesResponse), чтобы не тратить впустую cpu/mem на безуспешный вызов десериализации.
Ведь эти респонсы могут сотнями в секунду выстреливать.

А typeof(GetUpdatesResponse) и typeof(Response) вполне можно положить в static readonly переменные в BaseApi.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions