Je suis en train de mapper la mémoire d'un fichier volumineux (~ 200 Go) en une seule région/vue et en y écrivant séquentiellement. De temps en temps, j'effectue un boost::interprocess::mapped_region::flush(last, current, false)
.Libération de la mémoire mappée
Après un certain temps le processus utilise la totalité de la mémoire du système. Ce qui, d'après ce que je comprends, est normal car il libère la mémoire en tant que mémoire de demande de processus. Cela fonctionne bien sur Windows 8. Cependant, sous Windows 7, il ne semble pas très bien fonctionner avec les pilotes des cartes vidéo AJA et cela commence à affecter les performances (suppression des paquets d'E/S). Existe-t-il un moyen de forcer Windows 7 à vider des parties de la mémoire sur le disque (après que les données sont écrites, elles ne sont intéressantes que pendant quelques secondes, et souvenez-vous que j'écris séquentiellement dans le fichier entier), ne pas utiliser toute la mémoire système disponible?
S'il vous plaît commenter si -1. – ronag