2017-08-24 6 views
-1

J'utilise un répertoire qui contient environ 3000 fichiers. Je suis conscient des threads NTFS qui ont dit que CreateFile était lent pour lire des fichiers en quantité de 100 000 ou des millions. Mon nombre n'est pas si élevé, mais il faut encore environ 4 à 7 ms pour que CreateFile se termine ce qui ajoute quand j'ouvre 3000 fichiers. Donc mon problème est similaire au post ci-dessous. Sur certaines machines, il est rapide comme l'éclair lorsque j'appelle CreateFile et sur d'autres c'est cette vitesse de 4-7 ms. J'ai essayé le système de fichiers Fat32 et NTFS sans chance, il est lent sur les deux. Pareil avec Win7 et Win10, lent sur les deux. Le seul point commun que j'ai remarqué est que les machines où il est lent semblent être sur des machines qui utilisent des contrôleurs SATA/RAID et rapides sur des machines qui ont un SATA standard. Toutes les machines utilisent des disques SSD.Windows CreateFile est lent lors de l'ouverture d'un grand nombre de fichiers

En note: Je fais la même chose que le fil ci-dessous dans le cadre de mon expérience. J'ai un programme simple qui appelle CreateFile, puis CloseHandle. Ne fait rien d'autre et est très lent sur certaines machines (4-7ms CreateFile) et rapide sur d'autres comme décrit ci-dessus. Le sujet suivant est une question très similaire mais il n'y a jamais eu de bonne réponse.

Why is windows so slow in opening files first time and is there a faster way

Merci

dgraves

+1

Logiciel anti-virus? –

+0

La première fois qu'un fichier est ouvert, un travail supplémentaire est effectué dans le gestionnaire de mémoire/cache et dans le système de fichiers (par exemple, allocation d'un bloc de contrôle de fichier/lien et descripteur de sécurité). , en fonction de la conception et de l'utilisation du système de fichiers. Mais cela n'explique pas un retard aussi long que 7 ms. Essayez-le définitivement avec tous les scanners de logiciels malveillants désactivés, comme suggéré par @HarryJohnston. – eryksun

+0

Aucun logiciel anti-virus n'est en cours d'exécution. Aussi, je viens de découvrir que les machines sur lesquelles il tourne lentement ne montrent pas ce problème si j'exécute le programme en mode sans échec. – dgraves

Répondre

1

Je me suis trompé. Je n'avais aucun logiciel anti-virus tiers installé, mais Microsoft Security Essentials était toujours installé. C'est définitivement le problème et il est logique que CreateFile soit plus lent lorsque MSE est en cours d'exécution. Donc, si vous avez MSE ou Windows Defender en cours d'exécution cela va ralentir CreateFile de manière significative.