Une application C# que j'ai développée écrit 300 petits fichiers (1k) dans un système de fichiers local (NTFS). Pendant ce temps, explorer.exe utilise jusqu'à 100% du temps CPU.Le programme personnel écrit 300 petits fichiers. Pendant ce temps explorer.exe dessine presque 100% du temps processeur
choses que je déjà triés:
- Assured qu'aucune fenêtre de l'explorateur sont ouverts afficher le dossier cible
- indexation exclue pour le dossier cible
- indexation Expluded pour ce lecteur complet
- Nous nous sommes arrêtés et désactivé les services "Recherche Windows" (SearchIndexer.exe)
sans effet.
Quand j'utilise Systinternals ProcessExplorer Je vois un fil occupé de explorer.exe qui indique la plupart du temps:
ntdll.dll!RtIFreeUnicodeString+0x1370
Et son look pile comme ceci:
0 msvcrt.dll!memcpy+0x8a
1 SHELL32.dll!Ordinal755+0x75c
2 SHELL32.dll!PathYetAnotherMakeUniqueName+0x35316
3 SHELL32.dll!ExtractIconExW+0xed8
4 SHELL32.dll!ExtractIconW+0x98e5
5 SHELL32.dll!SHChangeNotification_Lock+0x4179
6 SHELL32.dll!DAD_SetDragImage+0x1018
7 SHELL32.dll!DAD_SetDragImage+0x11ef
8 SHCORE.dll!GetProcessReference+0x3f
9 ntdll.dll!RtlDestroyHeap+0x317
10 ntdll.dll!RtlFreeUnicodeString+0x17d5
11 KERNEL32.DLL!BaseThreadInitThunk+0xd
12 ntdll.dll!RtlUserThreadStart+0x34
Qu'est-ce que l'explorateur. exe faire ici? Existe-t-il une dépendance directe entre le système de fichiers et l'explorateur? Et comment puis-je empêcher ce comportement?
Il n'y a pas thread d'interface utilisateur. L'écriture se passe dans un propre fil. Cependant, le problème se manifeste également dans le UnitTest correspondant, qui vient de générer tous ces fichiers – Seven
Vous pouvez utiliser un outil comme [Process Explorer] (https://technet.microsoft.com/en-us/sysinternals/bb896653.aspx) pour Découvrez ce que les threads les plus occupés de Explorer.exe sont en train de faire. –
@Axel Kemper: J'ajoute une sortie de ProcessExplorer. En position 5, il est indiqué "SHChangeNotification_Lock". L'explorateur notifie-t-il certains processus à propos de chaque nouveau fichier? – Seven