2016-03-30 3 views
1

Ich benutze Power Shell-Skript, um einen Prozess mit seiner Befehlszeile Name.Aber wenn ich das Skript ausführen, CPU-Auslastung der Maschine steigt um 10 Prozent. Ich will das nicht Art der Erhöhung amount.Below Code Skripte steigt die CPU-AuslastungCPU-Auslastung erhöht, wenn alle gewinnen 32

$wmiComParams=Get-WmiObject win32_process -Filter "CommandLine like '%$appWmi%'" | select CommandLine 

gibt es eine andere Lösung für dieses Problem?

+0

whats '$ appWmi'? Wenn ich das Skript ausführe, wird meine CPU überhaupt nicht erhöht. –

+0

appWmi ist die Befehlszeilenparameter des Prozesses – nihasmata

Antwort

0

Ich bin kein Power Shell-Benutzer, obwohl ich vielleicht früh genug lernen muss. Ich kann einige allgemeine Beobachtungen machen.

Beim Starten eines Skripts wird ein neuer Prozess ausgegliedert. Starten Sie einen schwergewichtigen Prozess wird CPU-Zyklen aufnehmen. Wenn Ihre Anwendung/Ihr Skript kurz ist, ist es sehr wahrscheinlich, dass der größte Teil Ihrer CPU-Zeit durch das Starten/Abbrechen beansprucht wird.

In ähnlicher Weise startet ein Skript selbst eine ganze Reihe anderer Prozesse, wenn verschiedene Befehle ausgeführt werden. Dies bedeutet, dass noch mehr CPU-Zyklen beim Auf- und Abbau Ihrer Prozesse benötigt werden.

Hier sind einige Vorschläge: Verwenden Sie Kontrollstrukturen, die in die Power Shell integriert sind, statt in separate Apps, wann immer dies möglich ist. Power-Shell-Kontrollstrukturen sollten keinen anderen Prozess starten und somit die von mir erwähnte Rüst-/Abbauzeit vermeiden. Versuchen Sie, Prozesse/Anwendungen so oft wie möglich auszuführen. Zum Beispiel (mit meinem nativen Linux-Dialekt): BIG-APP < gesamte Datei gegen für jede Zeile tun SMALL-APP one-line.

Verwandte Themen