Question

Lorsque la fonction CreateFile est appelée sans le drapeau FILE_FLAG_NO_BUFFERING, quelle est la taille de la mémoire tampon interne du système d'exploitation?

Si ma taille de la mémoire tampon est plus grande que la mémoire tampon interne de Windows, puis-je utiliser pleinement le débit du disque?

Était-ce utile?

La solution

Il varie probablement de la version Windows à la version Windows, ainsi que selon la quantité de RAM libre. Plutôt que de compter sur quelque chose de spécifique, il vous suffit de faire les lectures et écritures avec des tailles de tampons qui fonctionnent bien pour votre application.

Autres conseils

Il dépend la quantité de RAM que vous avez, et comment la machine est configurée. Les serveurs sont généralement configurés pour le cache du système de privilège. Vous pouvez changer cela en modifiant la clé de Registre suivante

[HKEY_LOCAL_MACHINE \System \CurrentControlSet \Control \Session Manager \Memory Management] LargeSystemCache

La fonction SetSystemFileCacheSize peut être utilisé pour modifier la taille du cache . Cependant, d'après ce que je comprends, le réglage de la taille du jeu de travail est plus d'un indice pour le système d'exploitation d'une limite stricte.

En ce qui concerne votre deuxième question, je ne sais pas exactement ce que vous voulez dire. Je ne vois pas comment la taille de votre mémoire tampon aura une incidence sur le débit, mais je suis sûr que quelqu'un me corrigera si je me trompe.

Si vous utilisez sans mise en mémoire tampon, il n'y a vraiment pas un tampon pour les E / S autre que celui que vous avez donné lecture / écriture. (Ceci est à l'exception de fichiers compressés, qui est une bille différent de la cire).

Le cache système est ignoré dans ce cas, ce qui est la raison pour laquelle vous êtes tenu (voir

scroll top