WMP 12 CPU-Auslastung über 50%!

Gorby

Vice Admiral
Registriert
Juni 2008
Beiträge
7.083
Hallo liebe CB/FB'ler,

ich brauche mal wieder eure Hilfe. Ich habe vor ein paar Tagen Win7 Pro64 neu installiert. Habe alle Treiber und Programme installiert, natürlich auch SP1 und alle Updates.

Das Problem: Wenn ich mit dem Windows Media Player 12 Musik (z.B. MP3) oder Webradio abspiele, steigt meine CPU-Auslastung auf über 50%. Vor der Neuinstallation lag diese normal so bei 5-10%. Merkwürdigerweise tritt das verhalten nicht bei Videodateien auf, nur bei Audiodateien. Laut Taskmananger ist es auch tatsächlich er WMP12 der so viele Ressourcen frist. Blöd ist halt, dass ich so fast unmöglich neben dem Zocken (vor allem SC2, da sehr CPU-lastig) Musik hören kann. Google spuckt einiges zu dem Thema aus, aber keiner weis woran es liegt, oder wie man das Problem behebt :(
BTW hab ich nie etwas umgestellt im WMP12 und vorher nie Probleme gehabt.

System siehe Signatur

lg Gorby
 
Chipsatz bzw. Soundkartentreiber?
Also nicht die von Windows, sondern vom Hersteller?

Im Geräte Manager auch alles ok?
 
Versuchst du ihn rein zufällig mit m3u-Dateien zu füttern?

Nimm besser VLC, ich hatte das gleiche Problem mit m3u und habe es immernoch. Der WMP verträgt die wohl nicht. Manchmal gehts, dann wieder nicht.

Dann stürzt er ab und du hast auf einem CPU-Core 100%....
 
Process Explorer runterladen, Rechtsklick -> Eigenschaften auf den WMP, Reiter Threads wählen und nachsehen, was genau die CPU-Last verursacht.
 
Das klingt ganz stark danach das WMP die Datei-Bibliothek mit Internetinhalten aufpeppt. Im normalen Modus des WMP steht dann unten rechts: Dateien werden aktualisiert. Hab das gleiche Problem gerade auf meinem Netbook, wo ich dann allerdings bisweilen 100% Auslastung habe.
 
AIMP2 benutzen, brauch wesentlich wniger und sieht schicker aus als der wmp
 
Besorg dir ein Codec Pack mit Hardwarebeschleunigung und schau auch mal in den WMP-Optionen, ob diese aktiviert ist.
 
@ etking: Bringt nur nix bei Audiodateien...
 
Chipsatz bzw. Soundkartentreiber?
Gibt es nur den von Asus, den ich auch vorher drauf hatte. Is also der gleiche drauf wie vorher und aktuellere gibt es wohl nicht.
AIMP2 benutzen, brauch wesentlich wniger und sieht schicker aus als der wmp
Sorry, ich will WMP und nix anderes. Hat ja bisher auch funktioniert.

@ Yuuri
werde das mal testen. Geiles Bild btw^^

Edit: Ich hab jetzt das Programm runtergeladen, verstehe aber nicht ganz was du da jetzt meinst? Wo soll ich da was klicken? Wenn ich das Programm öffne hab ich da halt son TaskManager der genau wie der von Windoof 40-50% Auslastung für WMP anzeigt.
 
Zuletzt bearbeitet:
Gorby schrieb:
Ich hab jetzt das Programm runtergeladen, verstehe aber nicht ganz was du da jetzt meinst? Wo soll ich da was klicken? Wenn ich das Programm öffne hab ich da halt son TaskManager der genau wie der von Windoof 40-50% Auslastung für WMP anzeigt.
Siehe Screenshot. Im Fenster steht dann die DLL, welche die Auslastung verursacht und hinter dem Ausrufezeichen die jeweilige Funktion. Evtl. kannst du ja aus dem Funktionsnamen schon ableiten, was die Auslastung verursacht.
 

Anhänge

  • a.png
    a.png
    197,5 KB · Aufrufe: 231
OK, also es zeigt an, dass wmp.dll!Original3000+0x1f749 über 40% auslastung hat. Auf denem Screenshot, den du freundlicherweise für mich gemacht hast :), hast du 0% auslastung darauf. Es scheint also daran zu liegen. Weis jemand für was diese DLL da ist?
 
Mit dem Export Viewer kannst du dir dabei alle Funktionen einer DLL anzeigen lassen.

Um genau zu sein, wmp.dll!Original3000 ist eine Eigenschaft mit dem Namen "IWMPBrandDispatch::friendlyName".

Durch eine Google-Suche, bin ich dann auf diese Seite gekommen. Wenn du nun nach "friendlyName" suchst, kommst du im Quelltext auf die Zeilen
Code:
// *********************************************************************//
// Interface   : IWMPSyncDevice
// Indicateurs : (256) OleAutomation
// GUID        : {82A2986C-0293-4FD0-B279-B21B86C058BE}
// *********************************************************************//
  IWMPSyncDevice = interface(IUnknown)
    ['{82A2986C-0293-4FD0-B279-B21B86C058BE}']
    function  Get_friendlyName(out pbstrName: WideString): HResult; stdcall;
    function  Set_friendlyName(const pbstrName: WideString): HResult; stdcall;
    function  Get_deviceName(out pbstrName: WideString): HResult; stdcall;
    function  Get_deviceId(out pbstrDeviceId: WideString): HResult; stdcall;
    function  Get_partnershipIndex(out plIndex: Integer): HResult; stdcall;
    function  Get_connected(out pvbConnected: WordBool): HResult; stdcall;
    function  Get_status(out pwmpds: WMPDeviceStatus): HResult; stdcall;
    function  Get_syncState(out pwmpss: WMPSyncState): HResult; stdcall;
    function  Get_progress(out plProgress: Integer): HResult; stdcall;
    function  getItemInfo(const bstrItemName: WideString; out pbstrVal: WideString): HResult; stdcall;
    function  createPartnership(vbShowUI: WordBool): HResult; stdcall;
    function  deletePartnership: HResult; stdcall;
    function  Start: HResult; stdcall;
    function  stop: HResult; stdcall;
    function  showSettings: HResult; stdcall;
    function  isIdentical(const pDevice: IWMPSyncDevice; out pvbool: WordBool): HResult; stdcall;
  end;
Hast du also irgendwie ein Gerät (MP3-Player, Handy oder irgendwas) was den WMP durcheinander bringt bzw. dessen Treiber nicht korrekt arbeitet? Testweise mal alle Gerätschaften abstecken und schauen, wann keine Last mehr vorhanden ist.
 
Installier mal die Debugging Tools.

Geh dann im Process Explorer auf Options -> Configure Symbols und trag bei Dbghelp.dll path C:\Program Files\Debugging Tools for Windows (x64)\dbghelp.dll ein (oder je nachdem, wo du die Debugging Tools installierst) und bei Symbols path den Wert srv*C:\SymbolCache*http://msdl.microsoft.com/download/symbols ein. Siehe Screenshot 1.

Danach öffnest du nochmal den WMP und gehst im Process Explorer wieder auf die Eigenschaften und in den Reiter Threads. Falls das eine Weile dauert und der Explorer nicht reagiert ist das normal, denn er lädt sich hierbei die ganzen Debug Symbole vom Microsoft Server herunter. Geh dann mal auf die wmp.dll mit der hohen Auslastung und klick mal auf den Button Stack. Evtl. findet sich ja dort etwas, was auf die hohe Auslastung hinweist. Am besten lädst du davon mal einen Screenshot hoch. Ein Beispiel siehst du im zweiten Screenshot.

Die Debugging Tools und den Symbolcache kannst du im Nachhinein natürlich löschen, wenn du es nicht mehr brauchst.
 

Anhänge

  • configure-symbols.png
    configure-symbols.png
    41,2 KB · Aufrufe: 144
  • dbg.png
    dbg.png
    54,5 KB · Aufrufe: 157
Der WMP baut seine Medien-Biblio neu auf, wenn Du gerade neu installiert hast und Du zig Musik-Files/Videos auf Deinem Rechner hast.

Mal einen File-Monitor befragen auf welchen Dateien er rumackert.
 
@ HisN: Wenn der WMP indiziert, steigt bei mir aber die Auslastung in der ntdll.dll in der Funktion RtlDosSearchPath.
 
@ HisN
Ich hab schon ne ordentliche Menge an Video- und Audiomaterial (~1,5 TB), aber das ganze läuft ja schon seit Tagen :freak: iwann muss er doch mal fertig damit sein? BTW was ist ein File-Monitor? HAb sowas noch nie benutzt.

@ Yuuri
Ich muss die ganze Zeit auf dein Bild schaun :lol:
Mich regt das jetzt schon wieder übel auf, das ich schon wieder so viel scheise zum Testen installieren muss. Hab eigentlich deshalb neuinstalliert, damit die ganzen Rückstände von sämtlichen Programmen die ich nicht mehr brauche weg sind. Aber gut ich probier jetzt noch da was du gesagt hast. Wenns dann nichts neues gibt überlege ich evtl. nochmal alles neu zu installieren. Wenns dann wieder nicht läuft schmeis ich die Kiste ausm Fenster :freak:

Edit: So hab ich gemacht. Jetzt is es nichtmehr wmp.dll!Original3000+0x1f749 sondern wmp.dll!?_ThreadMain@CWMStoreThreadManager...blabla
dann gemacht wie du gesagt hast:
wmp.dll!?FileSeek@@YGJPAXKPAUIError@@@Z+0x33
wmp.dll!??_7Cursor@@6BISECursor@@@
wmp.dll!?FileSeek@@YGJPAXKPAUIError@@@Z+0x33
wmp.dll!?FileRead@@YGJPAXKK0PAUIError@@@Z+0x19
wmp.dll!?ReadPage@Store@@QBEJKPAXPAUIError@@@Z+0x20
wmp.dll!?_ReadPage@Session@@AAEJPBVPageRef@@KPAUPAGEFRAME@@PAUIError@@@Z+0x28
wmp.dll!?_GetFrame@Session@@AAEJPBVPageRef@@PAUPAGEINFO@@KPAPAUPAGEFRAME@@PAUIError@@@Z+0x115
wmp.dll!?_GetBuffer@Session@@AAEJPBVPageRef@@PAUPAGEINFO@@KPAPAXPAUIError@@@Z+0xc2
wmp.dll!?_GetRef@Session@@AAEJPAVPageRef@@PAUPAGEINFO@@KPAUIError@@@Z+0x23
wmp.dll!?ReadPage@Session@@QAEJPAVPageRef@@KPAUIError@@@Z+0xde
wmp.dll!?Read@PageRef@@QAEJKPAUIError@@@Z+0x1e
wmp.dll!?Open@Record@@QAEJKPAUIError@@@Z+0x25
wmp.dll!?OpenRecord@IndexMover@@UAEJPAVRecord@@PAUIError@@@Z+0x14
wmp.dll!?GetColumn@Cursor@@UAGJKKPAXPAKPAUIError@@@Z+0x10b
wmp.dll!?Initialize@CQPColumnAccess@@QAEJPAUISECursor@@KPBU__MIDL___MIDL_itf_mlsinternal_0000_0000_0004@@PAU__MIDL___MIDL_itf_mlsinternal_0000_0000_0005@@PBU__MIDL___MIDL_itf_mlsinternal_0000_0000_0003@@W4WMQPOperator@@_N@Z+0x11c
wmp.dll!?QueryDistinct@CWMQueryProcessor@@IAEJKPAPAVCWMResultSet@@PAV2@W4WMQPOperator@@@Z+0x290
wmp.dll!?ExecuteQPTree@CWMQueryProcessor@@IAEJPAVWMQPTreeNode@@PAPAVCWMResultSet@@PAV3@@Z+0x160
wmp.dll!?ExecuteQPTree@CWMQueryProcessor@@IAEJPAVWMQPTreeNode@@PAPAVCWMResultSet@@PAV3@@Z+0x5b
wmp.dll!?Execute@CWMQueryProcessor@@QAEJPAPAVCWMResultSet@@@Z+0x24
wmp.dll!?Query@CWMSchemaClass@@QAEJKPBGPAU__MIDL___MIDL_itf_mls_0000_0000_0002@@KPAPAUIWMMediaLibraryResultSet@@@Z+0x79
wmp.dll!?Query@CWMStore@@UAGJABU_GUID@@KPBGPAU__MIDL___MIDL_itf_mls_0000_0000_0002@@KPAPAUIWMMediaLibraryResultSet@@@Z+0x5d
wmp.dll!?QueryStoreForAlbumsThatNeedMetadata@CWMMetadataTask@@AAEJPAPAUIWMMediaLibraryResultSet@@@Z+0xdd
wmp.dll!?PerformMetadataProcessingOnAlbumsNeedingMetadata@CWMMetadataTask@@AAEJ_K@Z+0xe4
wmp.dll!?ExecuteTask@CWMMetadataTask@@UAGJ_KPAUIWMStoreThreadManager@@PAUIWMMediaLibrary@@PAH@Z+0x275
wmp.dll!?ExecuteStoreTask@CWMStoreThreadManager@@AAEJK_KPAH@Z+0xfe
wmp.dll!?ThreadMain@CWMStoreThreadManager@@QAEJXZ+0x212
wmp.dll!?_ThreadMain@CWMStoreThreadManager@@SGKPAX@Z+0x27
kernel32.dll!@BaseThreadInitThunk@12+0xe
ntdll.dll!___RtlUserThreadStart@8+0x70
ntdll.dll!__RtlUserThreadStart@8+0x1b
 
Zuletzt bearbeitet:
File-Moni z.b. Process Monitor von Sysinternals.


@Yuuri
Das sagt einem aber auch nur was wenn man sich schwer damit beschäftigt, wärend Dateinamen und Verzeichnisse meist ohne Programmier-Studium aussagefähig sind^^
Krass.
 
Zuletzt bearbeitet:
Gorby schrieb:
Mich regt das jetzt schon wieder übel auf, das ich schon wieder so viel scheise zum Testen installieren muss. Hab eigentlich deshalb neuinstalliert, damit die ganzen Rückstände von sämtlichen Programmen die ich nicht mehr brauche weg sind. Aber gut ich probier jetzt noch da was du gesagt hast. Wenns dann nichts neues gibt überlege ich evtl. nochmal alles neu zu installieren. Wenns dann wieder nicht läuft schmeis ich die Kiste ausm Fenster :freak:
Macht doch nix, die Programme kannst du doch nachträglich wieder deinstallieren. Außer Platz auf der Festplatte machen die Programme nix schlimmes. Und Ordnung bekommst du so oder so nicht ins Windows hinein, denn jedes Programm legt irgendwo Daten ab, damit musst du dich abfinden. ;) Mich kotzt es zum Beispiel höllisch an, wenn Spiele ihre Savegames in die Eigenen Dateien legen. Dagegen machen kann man leider nichts...

Aber so wie es scheint ist es wirklich nur die Indizierung der Dateien (was mich wundert, denn eigentlich sollte bei Fehlern eine Datei übersprungen werden).

Wenn du dir den Stack ansiehst, sieht man es ganz deutlich an den Stellen
Code:
wmp.dll!?FileSeek@@YGJPAXKPAUIError@@@Z+0x33
wmp.dll!?FileSeek@@YGJPAXKPAUIError@@@Z+0x33
wmp.dll!?FileRead@@YGJPAXKK0PAUIError@@@Z+0x19
wmp.dll!?_GetFrame@Session@@AAEJPBVPageRef@@PAUPAGEINFO@@KPAPAUPAGEFRAME@@PAUIEr ror@@@Z+0x115 (handelt sich wohl um ein Video, bei Musik sollte hier Sample stehen, aber vielleicht nutzt Microsoft die Funktion für beides)
wmp.dll!?PerformMetadataProcessingOnAlbumsNeedingMetadata@CWMMetadataTask@@AAEJ_ K@Z+0xe4
und an den ganzen WMMediaLibraryResultSet-Einträgen. Sieh dir mal mit dem Process Monitor die Zugriffe vom WMP an. Im Tool dann auf Filter -> Filter... und als Filter Process Name is wmplayer.exe eintragen und Add drücken. Dann sollte es ja irgendwann eine Datei geben, wo die Auslastung steigt und es nicht mehr weiter geht.

edit: @ HisN: Die Funktionsnamen sollten einem aber etwas sagen. File, read, seek und error (in Verbindung) kann man auch ohne Programmierkenntnisse verstehen. ;)
 
Sry, war übers WE nicht da.

Also der ProcessMonitor zeigt einen ständigen Zugriff auf C:\Users\Gorby\AppData\Local\Microsoft\Media Player\CurrentDatabase_372.wmdb

Diese Datei ist auch schon 191 MB groß. Für was ist sie da? Kann ich sie evtl. einfach löschen?

Edit: Also ich hab jetzt mal im WMP12 in Optionen -> Medienbibliothek -> Ergänzende Informationen aus dem Internet abrufen deaktiviert. Jetzt Ist die LAst des WMP wieder normal. Scheint also tatsächlich daran gelegen zu haben.

ICh weis jetzt auch nich, aber ich denke ich lass das jetzt einfach deaktiviert. Im Prinzip brauch man das auch nich oder?
 
Zuletzt bearbeitet:
Zurück
Oben