Поддержка Go для операций Scatter-Gather IO

Я хочу разработать высокопроизводительный протокол связи клиент-сервер через доменные сокеты Unix в Go. В частности, я думал об использовании операций Vector-IO (системные вызовы writev/readv), чтобы избежать накладных расходов на сериализацию структурированных данных. Однако я думаю, что Go не полностью поддерживает использование операций ввода-вывода с разбросом-сборкой. Я нашел несколько попыток обеспечить поддержку Go для операций записи, но не для чтения. Есть ли способ реализовать это в Go и/или какая альтернатива будет с точки зрения производительности?

Создание API ввода вопросов на разных языках программирования (Python, PHP, Go и Node.js)
Создание API ввода вопросов на разных языках программирования (Python, PHP, Go и Node.js)
API ввода вопросов - это полезный инструмент для интеграции моделей машинного обучения, таких как ChatGPT, в приложения, требующие обработки...
1
0
596
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Используйте net.Buffers для оптимизированной пакетной записи с использованием writev или аналогичного.

Для чтения поместите данные в один буфер и кусочек буфер по мере необходимости.

Сеть? А файлы? Мне нужно записать несколько фрагментов данных с помощью системного вызова writev() на диск

Nulik 27.12.2020 01:17

Другие вопросы по теме