finsight / QUIKSharp

QUIK# (QUIK Sharp) is the QUIK Lua interface ported to .NET.
Other
230 stars 134 forks source link

Замена Newtonsoft.Json на System.Text.Json #348

Closed dnmsk closed 11 months ago

dnmsk commented 11 months ago

Добрый день. Есть возможность заменить json сериалайзер на стандартный .net core. Соответственно изменится фреймворк с net461;netstandard2.0 на .net6+. Это даст 2х+ прирост к производительности в парсинге сообщений из луа.

Создам PR если одобрите идею.

Pr0phet1c commented 11 months ago

Идея интересная, главное, чтобы работоспособность была проверена "в бою", и чтобы это не было "breacking changes". Будет ли этим требованиям соответствовать переход на .net6 - не знаю. Ну и мнение автора проекта @buybackoff тут не помешает. Ведь были причины выбрать именно этот сериализатор...

buybackoff commented 11 months ago

Тогда не существовало System.Text.Json.

Замена будет простой, но рискованной, потому что стабильный mapping одна из главных вещей тут. Практически все поля каждого сообщения содержат атрибуты с именами полей из JSON, это всё нужно будет переделывать на новые атрибуты. И если для простых полей это тривиально как Ctrl+H, то для многих полей у нас есть специальные конверторы, которые нужно переделывать. Для каких-то типов данных, например дат, может измениться поведение. Много работы без особого смысла, пока JSON.NET никуда не делся и остаётся самой популярной библиотекой.

Вопрос производительности исключительно теоретический, на практике будет не заметно.

On Wed, 20 Sept 2023, 6:09 pm Prophetic, @.***> wrote:

Идея интересная, главное, чтобы работоспособность была преверена "в бою", и чтобы это не было "breacking changes". будет ли этим требованиям соответствовать переход на .net6 - не знаю. Ну и мнение автора проекта @buybackoff https://github.com/buybackoff тут не помешает. Ведь были причины выбрать именно этот сериализатор...

— Reply to this email directly, view it on GitHub https://github.com/finsight/QUIKSharp/issues/348#issuecomment-1728042286, or unsubscribe https://github.com/notifications/unsubscribe-auth/AADXS7CKMJKDEXG4A7S55ALX3MIKTANCNFSM6AAAAAA474Y5XA . You are receiving this because you were mentioned.Message ID: @.***>

Pr0phet1c commented 11 months ago

@buybackoff , спасибо за комментарий. Тогда не будем рисковать. Стабильность, на мой взгляд важнее, в данном случае. @dnmsk , за предложение спасибо, но пока воздержимся.

buybackoff commented 11 months ago

Вдобавок, классно если что-то может работать на допотопной версии винды и .NET 4.x. Многие пользователи даже наверное не задумываются о версиях .NET.

Форсировать предпоследние версии не стоит. Через полтора месяца будет .NET v8 LTS, и она тоже будет сильно быстрее во многих аспектах. Но Квик такой медленный сам и из-за latency через интернет, что все микро-оптимизации не имеют смысла. Всё и так в десятки раз быстрее, чем если бы это всё было на Питоне например.

Pr0phet1c commented 11 months ago

@buybackoff , согласен.