10
votes

Comment affleurer le disque Lire le cache sous Windows?

Duplicaté possible:

Comment invalider le cache du système de fichiers?

Pour pouvoir obtenir des points de repère, je dois nettoyer le disque Windows Lire cache. Comment puis-je faire cela?

En fait, je souhaite comparer si le chargement d'un gros fichier Unicode (UTF-8 ou UTF-16) à partir du disque est plus rapide ou non, considérant qu'en mémoire, je garde UTF-16.

Je sais que cela ne devrait être aucune différence significative, mais pour que cela soit nécessaire, je dois être sûr que ce fichier n'est pas mis en cache - je dois voir si la taille sur disque a plus ou moins d'impact que de décoder le fichier.


5 commentaires

Ce que vous cherchez est également appelé "déposer le cache". Sous Linux, vous pouvez le faire en écrivant sur / PROC / SYS / VM / DROP_CACHES . Aucune idée de Windows si ...


@Mehrdad Vous avez réalisé que cette question si de 2010 et celle de 2011?


@Jack: Oui Désolé, j'ai fait, mais en même temps, je postirais la réponse à cette question sur l'autre question il y a plusieurs mois ... Donc, soit cette question devrait être fermée comme une dupe de celle-ci, ou l'inverse. J'ai décidé d'opter pour ce dernier parce que j'ai vu tonnes de copies de cette question (nombre de 2010) lorsque j'ai googlé et que je pensais que ce serait beaucoup moins de problème de les marquer comme une dupe de Celui-là que d'essayer de trouver la copie la plus ancienne de cette question sur Stackoverflow (il y a des tonnes). :\ Désolé..


@Mehrdad Je pense que la procédure correcte officielle est que la question "meilleure" est à gauche et les autres marquées comme des dupes. Pour être honnête, je n'ai pas vraiment lu ou comparer les deux pour voir lequel est "mieux"


@Jack: Je me sens un peu bizarre en disant cela parce que j'étais celui qui a répondu à cette question, mais je pense vraiment que ma réponse est la seule qui fonctionne vraiment ... J'ai regardé tous les questions et answers mais aucun d'entre eux n'était aussi pratique (et sans avertissement) comme le mien. : \ C'est pourquoi je les ai marqués comme des dupes.


3 Réponses :


2
votes

La seule solution que j'ai trouvée jusqu'à présent était http://chadaustin.me/ 2009/04 / FLUSHING-DISK-cache / Mais celles-ci prend trop de temps alors j'espère que nous en trouverons un meilleur.


0 commentaires

3
votes

afaik, il n'est malheureusement pas possible de Jeter la la lecture sous Windows. J'ai passé du temps à regarder cela il y a quelques années, et Seulement découvert comment flush le cache écrit .

Comme je le vois, vous avez trois options, à moins que quelqu'un d'autre ait trouvé une magie:

  1. Si possible, faites votre fichier de lecture d'E / S en mode non coupé.
  2. Chaque fois que vous souhaitez comparer, créez une nouvelle copie des données de test spécifiant le mode non coupé lors de la création de la nouvelle copie (ce devrait Garder la copie hors du cache de lecture, mais je n'ai pas testé ).
  3. allouer suffisamment de mémoire que Windows doit supprimer le cache de disque (Ugh!).

    Edit: Il est en effet possible de rincer le cache de lecture, du moins sur Vista et plus loin: Désactiver ou affleurer le cache de page sur Windows . Cela nécessite un appel dans le NTSetsysteminformation NTSetsysteminformation NT, cependant. De plus, pour un seul fichier, lire le cache peut être rincé simplement en ouvrant le fichier avec file_flag_no_buffering spécifié et fermant la poignée à nouveau.


3 commentaires

Notez que le programme flushmem de la solution de réponse de SRRS SBARNEA 3. Cela fonctionne, mais alloue que beaucoup de mémoire est apparemment assez lent (probablement parce qu'il provoque beaucoup de paging / échange).


@sleskeke: Oui, ce n'est pas une jolie solution - il oblige les fenêtres à couper les ensembles de travail pour tous les processus, à faire de la page d'échange ... et ensuite il y aura généralement immédiatement une activité après.


Notez que le programme de programme de la réponse de SRR SBARNEA implémente la solution 3. Cela fonctionne, mais alloue que beaucoup de mémoire est apparemment assez lente (probablement parce que cela provoque beaucoup de pagination / échange). ne doit pas le mentionner Crash trucs. J'ai couru et chrome (y compris cette page même) a juste disparu. Doh! Heureusement quand j'ai couru chrome, il me permet de restaurer ma séance, donc c'était juste un inconvénient mineur; Néanmoins, soyez conseillé d'être en sécurité, vous devez tout quitter avant de l'utiliser (ce qui en fait bien sûr une solution médiocre). : - /



3
votes

Une personne de Microsoft m'a aidé avec cela il y a quelques années (à l'époque de Windows XP) et m'a donné une solution qui répondait à mes besoins à l'époque. J'ai déjà eu deux lecteurs dans ma machine et ce que je devais tester était déjà sur le lecteur d, et heureusement, je n'avais pas besoin de garder des fichiers ouverts sur mon lecteur D lorsque je voulais rincer le cache. À partir de l'interface de gestion de disque Windows, je pourrais modifier ma lettre D: lecteur à une autre lettre, puis retourner, et le lecteur D serait effectué comme s'il avait une cache froide dans le système d'exploitation.


0 commentaires