Сообщение Догнать C++ от 23.07.2021 11:57
Изменено 23.07.2021 12:09 igor-booch
Он переписал обработку логов на Java с использованием LogStash на чистый (без фрэймворков) С++
Не честно, нужно было попробовать на чистом Java.
А на C# какими средствами можно было бы попробовать догнать C++ ?
ОС не умеет работать напрямую с диском и записывать байты прямо с него в пользовательские буферы. Сначала ОС подтягивает большой кусок файла в оперативную память и уже оттуда копирует байты в нужный контейнер.
Такой способ работы с файлами — стандартный, но большинство современных ОС могут работать лучше. Операционная система сразу даст доступ к этому фрагменту памяти и работать с ним можно будет без всякого копирования. Именно это делает boost::interprocess::mapped_region
Есть ли аналог FileStream без буфера?
Он переписал обработку логов на Java с использованием LogStash на чистый (без фрэймворков) С++
Не честно, нужно было попробовать на чистом Java.
А на C# какими средствами можно было бы попробовать догнать C++ ?
ОС не умеет работать напрямую с диском и записывать байты прямо с него в пользовательские буферы. Сначала ОС подтягивает большой кусок файла в оперативную память и уже оттуда копирует байты в нужный контейнер.
Такой способ работы с файлами — стандартный, но большинство современных ОС могут работать лучше. Операционная система сразу даст доступ к этому фрагменту памяти и работать с ним можно будет без всякого копирования. Именно это делает boost::interprocess::mapped_region
Есть ли аналог FileStream без буфера, может только для Windows, за счёт тесной интеграции ОС с .NET или на Linux с помощью какого-нибудь драйвера?