Le mieux dans ces cas-là c'est du faire du multithread. : 1 thread par client, qui remplissent un buffer, et un thread qui s'occupe de vider le buffer dans le fichier. Ainsi si ponctuellement le disque "ralentit" (vis-à-vis du process), la RAM est mise à contribution, puis se vide quand le débit du disque remonte, si c'est le débit d'entrée qui diminue le buffer sera tout le temps vide - tant mieux. Si tu satures la RAM et que le disque ne suit pas, c'est pas la peine de chercher à optimiser le process (l'OS sait mieux que toi quelle resource est dispo à un moment donné), il faut changer le hard : passer sur plusieurs machines, mettre des disques plus rapides. etc...
[^] # Re: File mapping
Posté par jigso . En réponse au message DMA en C++ ?. Évalué à 2.