estoy escribiendo montones y montones de datos que no se leerá otra vez por semana - como mi programa se ejecuta la cantidad de memoria disponible en la máquina (se muestra con 'libre' o 'superior') cae muy rápido, la cantidad de memoria que usa mi aplicación no aumenta, ni tampoco la cantidad de memoria utilizada por otros procesos.que sin búfer de E/S en Linux
Esto me lleva a creer que la memoria está siendo consumida por la memoria caché del sistema de archivos - ya que no tengo la intención de leer estos datos durante mucho tiempo espero pasar por alto los búferes del sistema, de manera que mis datos se escriben directamente en disco. No tengo sueños de mejorar el rendimiento o ser un súper ninja, mi esperanza es dar una pista al sistema de archivos de que no volveré para este recuerdo en el corto plazo, así que no dediques tiempo de optimización para esos casos.
En Windows me he enfrentado a problemas similares y solucioné el problema usando FILE_FLAG_NO_BUFFERING | FILE_FLAG_WRITE_THROUGH - la memoria de las máquinas no fue consumida por mi aplicación y la máquina era más usable en general. Espero duplicar las mejoras que he visto pero en Linux. En Windows existe la restricción de escribir en trozos del sector, estoy contento con esta restricción por la cantidad de ganancia que he medido.
hay una manera similar a hacer esto en Linux?
que es sólo un problema debido a que el efecto es el caché se está utilizando para algo que nunca se usará. El caché está tomado de otros que podrían usar y estoy viendo un aumento de E/S. – stuck