我有一些代码,经常在对它们进行很小的更改之后,就经常复制一个大的内存块。
我已经实现了一个跟踪更改的系统,但是我认为,如果可能的话,告诉操作系统对内存进行“写时复制”,让它仅处理这些部分的副本,那可能会很好。哪个改变。但是,尽管Linux会进行写时复制,例如,在fork()ing时,但我找不到控制它并自己执行的方法。
您最好的机会可能是mmap()将原始数据保存到文件中,然后mmap()再次使用来复制相同的文件MAP_PRIVATE。
mmap()
MAP_PRIVATE