windows - Hvad kan få applikationen og systemet til at aftage?

Indlæg af Hanne Mølgaard Plasc

Problem



Jeg fejler en applikation, der sænker systemet meget dårligt. Programmet indlæser en stor mængde data (ca. 1000 filer hver halv en MB) fra den lokale harddisk. Filerne lægges som hukommelseskartede filer og kortlægges kun, når det er nødvendigt. Det betyder, at brugen af ​​virtuel hukommelse på et givet tidspunkt ikke overstiger 300 MB.


Jeg har også tjekket Handle-tællingen ved hjælp af handle.exe fra sysinternals og fandt ud af, at der højst er 8000 ulige håndtag åbnet. Når dataene loses, falder det til ca. 400. Der er ingen håndtagslækage efter hver belastning og losning.


Efter 2-3 Load Loadcykler, under en belastning, bliver systemet meget langsomt. Jeg kontrollerede applikationens virtuelle hukommelsesbrug samt håndtaget tæller på dette tidspunkt, og det var godt inden for grænserne (VM omkring 460 MB ikke meget fragmentering også håndtere tæller 3200).


Jeg vil have, hvordan en applikation kunne gøre systemet meget langsomt til at reagere? Hvilke andre værktøjer kan jeg bruge til at fejle dette scenario?


Lad mig være mere specifik, når jeg mener system er det hele vinduer, der sænker. Task manager selv tager 2 minutter at komme op og kræver ofte en hård genstart

Bedste reference


Det faktum, at hele systemet sænker nedadgående er meget irriterende, det betyder, at du ikke nemt kan vedhæfte en profiler, det betyder også, at det ville være lige svært at stoppe profileringssessionen for at se resultaterne (da du sagde det kræver en hård genstart ).


Det bedste værktøj, der passer til jobbet i denne situation, er ETW (Event Tracing for Windows), disse værktøjer er gode, giver dig det nøjagtige svar du søger


Tjek dem her


http://msdn.microsoft.com/en-us/library/cc305210.aspx
og
http://msdn.microsoft.com/en-us/library/cc305221.aspx
og
http://msdn.microsoft.com/en-us/performance/default.aspx[1][2][3]


Håber det virker.
Tak

Andre referencer 1


Værktøjer, du kan bruge på dette tidspunkt:



  • Perfmon

  • Event Viewer



Efter min opfattelse, når ting sker med et system, der forhindrer Task Manager i at poppe op, er de normalt af hardwarevarianten. Kontroller systemhændelseslogfilen i Event Viewer er undertiden bare fuld af advarsler eller fejl, at nogle hardwareenheder er timing ud.


Hvis Event Viewer ikke indikerer at nogen form for loggbar hardwarefejl forårsager afmatningen, så prøv Perfmon - tilføj tællere til systemobjekter for at spore fillæsning, undtagelser, kontekstomskiftere osv. Pr. Sekund og se om der er noget indlysende der.


Helt ærligt er den slags adfærd, der påvises, menes at være umulig - ved design - for brugerkodekoden til at forårsage. WinNT gør en stor indsats for at isolere applikationer fra hinanden og forhindre uhyggelige applikationer at gøre systemet ubrugeligt. Så min mistænksomhed er en slags hardwarefejl, der skyldes. Er der nogen chance for, at du simpelthen kan køre den samme test på en anden pc?

Andre referencer 2


Hvis du ikke har profilører, skal du muligvis gøre det samme arbejde for hånden ...


Har du forsøgt at kommentere alle read/write-operationer, bare for at kontrollere om forsinkelsen forsvinder?
'Divide and conquer' strategier hjælper dig med at finde ud af, hvor problemet ligger.

Andre referencer 3


Hvis du kører den under en IDE, skal du køre den, indtil den bliver rigtig langsom, og tryk derefter på 'pause' -knappen. Du vil fange det i handlingen med at gøre, hvad der tager så meget tid.

Andre referencer 4


Du bruger værktøjer som 'IBM Rational Quantify' eller 'Intel VTune' til at registrere ydeevne problem.

[[EDIT]]

Som Benoît gjorde, er et godt middel at måle opgaver tid til at identificere, hvad der spiser cpu.

Men husk, da du arbejder med mange filer, er det sandsynligt, at du mangler, der får hukommelsen til at skifte skifte.

Andre referencer 5


når task manager tager 2 minutter at komme op, får du en masse diskaktivitet? eller er det cpu-bundet?


Jeg ville prøve procesforsker fra sysinternals. Når dit system er i slow-down tilstand, og du forsøger at køre, siger notesblok, skal du være opmærksom på sidefejl deltager.

Andre referencer 6


Windows er meget grådig om caching fil data. Jeg ville prøve at fjerne fil I/O som nogen foreslog, og sørg også for at lukke filmappen så snart du er færdig med en fil.
Jeg/O forårsager sandsynligvis din afmatning, især hvis dine filer er på samme disk som OS. En anden måde at teste på, ville være at flytte dine filer til en anden disk og se om det lette problemet.