Здравствуйте, ·, Вы писали:
·>Здравствуйте, Serginio1, Вы писали:
S>>Тратите вы время на ерунду. Какая разница списки, коллекции, множества итд.
S>>Как то вы скатились с Span и Memory на хрень какую то.
S>>https://codereview.stackexchange.com/questions/204539/using-span-and-memory-to-read-utf8-from-a-socket
·>У тебя тоже хрень какая-то. На Java уж много лет такое можно делать без всяких unmanaged и прочей магии:
·>·>var in = ByteBuffer.allocate(3);
·>var out = CharBuffer.allocate(1024);
·>var decoder = StandardCharsets.UTF_8.newDecoder();
·>do
·>{
·> channel.read(in);//channel - может быть файл, сокет, пайп, shmem, whatever.
·> decoder.decode(in, out);
·>}
·>
·>С буферами-то проблем нет. Обсуждение шло о том, что потом с этими буферами делать — как потом это использовать в API, который умеет работать только со строками без лишнего копирования.
·>Грубо говоря, задача — прочитать сразу в parseDouble без лишних копирований и аллокаций.
Ну вот до этого в .Net был только unsafe. Сейчас пришли спаны и делают кучу библиотек к ним
https://blogs.msdn.microsoft.com/dotnet/2019/01/29/announcing-net-core-3-preview-2/
Utf8JsonWriter
The Utf8JsonWriter provides a high-performance, non-cached, forward-only way to write UTF-8 encoded JSON text from common .NET types like String, Int32, and DateTime. Like the reader, the writer is a foundational, low-level type, that can be leveraged to build custom serializers. Writing a JSON payload using the new Utf8JsonWriter is 30-80% faster than using the writer from Json.NET and does not allocate.
https://github.com/dotnet/corefx/blob/master/src/System.Text.Json/roadmap/README.md
Здравствуйте, Ночной Смотрящий, Вы писали:
НС>Здравствуйте, Shmj, Вы писали:
С>>>А что такое современное приложение для обычного пользователя?
S>>Это приложение для широкого круга, которое любой желающий может найти и скачать/купить через интернет.
НС>Например?
Думаю, Герои 3 подойдут: можно купить и скачать. Вышла, правда 19 лет назад, но всё же...
https://www.1c-interes.ru/catalog/all6963/16260705/