Повышение производительности mmap по сравнению с собственными картами памяти - PullRequest
3 голосов
/ 01 сентября 2010

Я напишу инструмент для сравнительного анализа, который будет тестировать сочетание операций ввода-вывода в секунду и пропускной способности дисковой системы, и поэтому я буду обращаться к файлам памяти с файловой поддержкой для ввода-вывода. Поскольку этот инструмент должен быть на обеих платформах POSIX и WinNT, я не могу просто использовать простые старые mmaps. Кроме того, насколько я понимаю, вы должны помнить ядро ​​Linux, что весь файл будет доступен последовательно? Что приводит меня к Boost карты памяти. Могут ли карты памяти Boost дать мне аналогичную производительность на аналогичном оборудовании с аналогичными качественными драйверами для Windows, Linux и Max OS X? Кто-нибудь тестировал Boost mmaps в разных системах?

1 Ответ

0 голосов
/ 01 сентября 2010

Почему бы вам не проверить и не узнать?Я подозреваю, что не будет никакой разницы в производительности, потому что Boost просто предоставляет средство обертки, не зависящее от платформы.

Кроме того, платформы Windows NT предоставляют возможность отображения памяти - это не то же самое, что отображение памяти является специфической функцией Linux,Для Windows вам понадобятся CreateFile, CreateFileMapping и MapViewOfFile.Библиотека Windows отличается тем, что создание механизма отображения отличается от создания отображенного представления.В противном случае функциональность эквивалентна.О, как и в POSIX, вам нужно очистить, в данном случае с UnmapViewOfFile для представлений и CloseHandle для отображения файлов и дескриптора файла.

...