CPU Auslastung verringern - objwmiservice.execquery( select * from win32_service")

  • Hi zusammen,

    Ich habe mir ein kleines Programm geschrieben womit ich den aktuellen Zustand mehrer Windows Dienste ausliest.
    Doch leider ist die CPU Auslastung hoch und ich wollte mal fragen ob es dort Verbesserung Potenzial gibt?


    Funktion die momentan verwendet wird.

    Spoiler anzeigen

    _GUICtrlListView_GetItemCount($listview) = Dienste die Nachgeschaut werden


    Versuch klappt aber nicht.

    Spoiler anzeigen


    Irgendwie klappt das aber nicht so wie ich es gedachte habe.

    Vielleicht kann mir da jemand weiterhelfen?

  • liefert diese func:

    nicht das gleiche Ergenisse wie deine, nur etwas schneller?

  • Dein Skript erzeugt schlicht keine Last.
    Es kann auch keiner ausführen um es zu testen.
    Mach doch am besten ein kleines Minimalbeispiel.

    Ich vermute aber, dass du die Funktion in einer Endlosschleife immer wieder aufrufst.
    Dabei wird immer ein neues WMI-Objekt erstellt und die Daten abgefragt - jedes mal aufs neue.
    Eine Möglichkeit wäre daher wenigstens das WMI-Objekt immer wieder zu verwenden und die nächste Stufe wäre ein Refresher-Objekt zu verwenden.

    Mal als Grundaufbau für deine Funktion:

    In der Endlosschleife sollte auch noch ein Sleep mit eingebaut werden um der CPU ne Pause zu gönnen.

  • Danke euch beiden.

    Beides hat mich weitergebracht. Das Ergebnis habe ich nun schneller und das mit dem Sleep befehl in der Schleife hat auch sehr viel gebracht.

    Super danke euch beiden.