Можно ли сделать mmap не файла, а куска памяти?
Задача такая: у меня есть массив данных double[] и алгоритм, который в процессе работы этот массив меняет. При этом алгоритм должен вызываться много раз на первоначальных данных, т.е. напрямую менять их нельзя. Особенность такова, что в хорошем случае (таких большинство) он изменит лишь малую часть массива, но в плохом изменит его весь. В результате получается, что если тупо делать копию данных для каждого вызова алгоритма, большую часть времени программа копирует данные (фактически зря, потому что менять надо будет мало). А если не копировать данные, а делать std::map/unordered_map только с изменившимися значениями, всё начинает работать медленно из-за плохих вариантов, и профайлер показывает что время тратится в кишках map и аллокаторах.
В общем, нужно что-то типа гибридного решения: без мапы, но и чтобы всё не копировать. Показалось логичным использовать возможности виртуальной памяти и сделать что-то типа copy on write, чтобы при изменении страницы копировалась только она одна. Как такое можно сделать без костылей типа записи исходного массива в файл?