Информация об изменениях

Сообщение Догнать C++ от 23.07.2021 11:57

Изменено 23.07.2021 12:09 igor-booch

Догнать C++
https://habr.com/ru/company/jugru/blog/563988/

Он переписал обработку логов на Java с использованием LogStash на чистый (без фрэймворков) С++
Не честно, нужно было попробовать на чистом Java.
А на C# какими средствами можно было бы попробовать догнать C++ ?

ОС не умеет работать напрямую с диском и записывать байты прямо с него в пользовательские буферы. Сначала ОС подтягивает большой кусок файла в оперативную память и уже оттуда копирует байты в нужный контейнер.
Такой способ работы с файлами — стандартный, но большинство современных ОС могут работать лучше. Операционная система сразу даст доступ к этому фрагменту памяти и работать с ним можно будет без всякого копирования. Именно это делает boost::interprocess::mapped_region


Есть ли аналог FileStream без буфера?
Догнать C++
https://habr.com/ru/company/jugru/blog/563988/

Он переписал обработку логов на Java с использованием LogStash на чистый (без фрэймворков) С++
Не честно, нужно было попробовать на чистом Java.
А на C# какими средствами можно было бы попробовать догнать C++ ?

ОС не умеет работать напрямую с диском и записывать байты прямо с него в пользовательские буферы. Сначала ОС подтягивает большой кусок файла в оперативную память и уже оттуда копирует байты в нужный контейнер.
Такой способ работы с файлами — стандартный, но большинство современных ОС могут работать лучше. Операционная система сразу даст доступ к этому фрагменту памяти и работать с ним можно будет без всякого копирования. Именно это делает boost::interprocess::mapped_region


Есть ли аналог FileStream без буфера, может только для Windows, за счёт тесной интеграции ОС с .NET или на Linux с помощью какого-нибудь драйвера?