CPU Spikes bei Minimierung ins Tray

Fehler in TV-Browser
uzi
Site Admin
Beiträge: 2294
Registriert: 02 Jul 2009, 14:32

Re: CPU Spikes bei Minimierung ins Tray

Beitrag von uzi »

wie gesagt, das ist kein (java) thread dump ;). wie man einen java thread dump bekommt, steht hier schon mehrfach im forum. das ist zwar etwas komplizierter, als einfach im process explorer nen knopf zu drücken, aber dafür sehr wahrscheinlich auch hilfreicher (und der dump ist viel kleiner). kann mir nicht vorstellen, dass der process explorer besonders tief in die jvm gucken kann.
HaasUwe
Gold Member
Beiträge: 318
Registriert: 26 Feb 2012, 17:09
Wohnort: Großraum Frankfurt am Main

Re: CPU Spikes bei Minimierung ins Tray

Beitrag von HaasUwe »

Bei mir laufen noch bis morgen früh zwei vergleichende Debugger-Sitzungen, die alle notwendigen Infos in Intervallen ablegen.
Nach Abschluß werde ich die Protokolle als RAR-Datei zur Verfügung stellen, um den Ursachen auf den Grund gehen zu können.
Ich bin mir aber jetzt schon sicher, das das Gespann Lieblingssendungen/Erinnerungen für die CPU-Last und den Speicherverbrauch verantwortlich ist.
Win XP Pro SP3
Java JRE 6 Upd 41
TV-Browser v3.3RC1 Build 1812 vom 13.02.2013
derDay

Re: CPU Spikes bei Minimierung ins Tray

Beitrag von derDay »

Danke Jo, dass wollte ich nämlich auch schon sagen, dass Uwe doch ein ganz anderes Problem hat. Ich habe ja nur dann eine Vollauslastung eines Kerns, wenn TVB im Tray liegt.

So, ich habe mal im Forum nach "thread dump" gesucht und nur eine Anleitung, die ich als Gast aber nicht verlinken darf ("TV-Browser 3.1 friert unentwegt ein" vom 27.02.2012)
Danach soll ich ja TVB aus der DOS Box starten und dann kill -3 pid eingeben. Mein TVB hängt aber garnicht, daher kann ich in der DOS Box auch garkeine neuen Befehle eingeben. Und nu?

Den Dump den ich oben gemacht hab (komprimiert 60MB groß), war über den ProcessExplorer, und wenn ich das richtig verstanden hab, bringt der ja wohl nix.
uzi
Site Admin
Beiträge: 2294
Registriert: 02 Jul 2009, 14:32

Re: CPU Spikes bei Minimierung ins Tray

Beitrag von uzi »

So, ich habe mal im Forum nach "thread dump" gesucht und nur eine Anleitung, die ich als Gast aber nicht verlinken darf ("TV-Browser 3.1 friert unentwegt ein" vom 27.02.2012)
Danach soll ich ja TVB aus der DOS Box starten und dann kill -3 pid eingeben. Mein TVB hängt aber garnicht, daher kann ich in der DOS Box auch garkeine neuen Befehle eingeben. Und nu?
du bist doch unter windows, oder? der kill-befehl ist für linux/unix. unter windows drückst du einfach strg + pause. bin nur nicht ganz sicher, ob in der konsole oder im tvb-fenster. im zweifel würde ich auf ersteres tippen.
Den Dump den ich oben gemacht hab (komprimiert 60MB groß), war über den ProcessExplorer, und wenn ich das richtig verstanden hab, bringt der ja wohl nix.
dass das nichts bringt, will ich nicht gesagt haben. ich vermute nur, dass der java thread dump mehr bringt ;).
HaasUwe
Gold Member
Beiträge: 318
Registriert: 26 Feb 2012, 17:09
Wohnort: Großraum Frankfurt am Main

Re: CPU Spikes bei Minimierung ins Tray

Beitrag von HaasUwe »

Von derDay hat Windows 7, ich habe Windows XP
Und von mir liegen morgen ausführliche, belastbare Daten vor, damit sollte das Problem genau überprüfbar sein.
Win XP Pro SP3
Java JRE 6 Upd 41
TV-Browser v3.3RC1 Build 1812 vom 13.02.2013
uzi
Site Admin
Beiträge: 2294
Registriert: 02 Jul 2009, 14:32

Re: CPU Spikes bei Minimierung ins Tray

Beitrag von uzi »

das ist super uwe, aber wie weiter oben schon festgestellt wurde, ist a) dein problem ein anderes, als das von day und b) deine infos andere, als ein thread dump. ist also sicher nicht schädlich, wenn day nen thread dump macht und schmälert weder deine anstrengungen, noch macht es sie obsolet.
HaasUwe
Gold Member
Beiträge: 318
Registriert: 26 Feb 2012, 17:09
Wohnort: Großraum Frankfurt am Main

Re: CPU Spikes bei Minimierung ins Tray

Beitrag von HaasUwe »

Der Debugger ist Java-Kompatibel und macht vollständige Thread-Dumps. Bei mir vermute ich ein Speicherproblem, das zumindesten deutet der Vergleich zwischen den ansonsten identischen Rechnern an.
Win XP Pro SP3
Java JRE 6 Upd 41
TV-Browser v3.3RC1 Build 1812 vom 13.02.2013
uzi
Site Admin
Beiträge: 2294
Registriert: 02 Jul 2009, 14:32

Re: CPU Spikes bei Minimierung ins Tray

Beitrag von uzi »

ehrlich gesagt fänd ich ein ram-problem eher seltsam. wenn der ram knapp wird, wird öfter eine (full) garbage collection ausgeführt und während die läuft, verbraucht sie natürlich cpu. aber eben auch nur dann. wenn ich mir deine cpu-graphen weiter vorn angucke, ist da von gc-spikes nichts zu sehen, sondern eher eine relativ gleichmäßige, aber hohe auslastung. was genau da herumgerödelt wird, sollten deine thread-dumps ja dann zeigen.
HaasUwe
Gold Member
Beiträge: 318
Registriert: 26 Feb 2012, 17:09
Wohnort: Großraum Frankfurt am Main

Re: CPU Spikes bei Minimierung ins Tray

Beitrag von HaasUwe »

Deswegen läuft ja ein Dauertest. Kurioserweise geht die Last mach einiger Zeit zurück.
Und beim parallel laufenden Laptop ohne Erinnerungen und Lieblingssendungsdefinitionen ist sowohl CDU-Last wie auch RAM-Verbrauch signifikant geringer. (Die PlugIns sind allerdings auch dort installiert)
Win XP Pro SP3
Java JRE 6 Upd 41
TV-Browser v3.3RC1 Build 1812 vom 13.02.2013
derDay

Re: CPU Spikes bei Minimierung ins Tray

Beitrag von derDay »

ok, STRG+Pause brachte mehr. Nochmal meine Specs zusammengefasst: TVB 3.2.1, Win7 64bit, JRE 1.7.0_13-b20 64bit (keine weitere Version installiert)

Code: Alles auswählen

c:\Program Files (x86)\TV-Browser>java -Dpropertiesfile=windows.properties -jar tvbrowser.jar
command line options:
    -minimized      The main window will be minimized after start up
    -nostartscreen  No start screen during start up
    -fullscreen     Start in fullscreen-mode
    -ignorejvm      Don't check for Sun Java

16:58:57 INFO: Using settings from file C:\Users\name\AppData\Roaming\TV-Browser\3.2.1\settings.prop
2013-02-15 16:59:27
Full thread dump Java HotSpot(TM) 64-Bit Server VM (23.7-b01 mixed mode):

"Store settings periodically" prio=2 tid=0x0000000013ba5000 nid=0xab8 waiting on condition [0x000000001a16f000]
   java.lang.Thread.State: TIMED_WAITING (sleeping)
        at java.lang.Thread.sleep(Native Method)
        at tvbrowser.TVBrowser$3.run(TVBrowser.java:702)

"pool-1-thread-6" prio=6 tid=0x0000000013ba4000 nid=0xae4 waiting on condition [0x0000000019fdf000]
   java.lang.Thread.State: TIMED_WAITING (sleeping)
        at java.lang.Thread.sleep(Native Method)
        at tvbrowser.core.plugin.PluginProxyManager$5.run(PluginProxyManager.java:1318)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
        at java.lang.Thread.run(Unknown Source)

"pool-1-thread-5" prio=6 tid=0x0000000013ba3800 nid=0x10d0 waiting on condition [0x0000000019eaf000]
   java.lang.Thread.State: TIMED_WAITING (sleeping)
        at java.lang.Thread.sleep(Native Method)
        at tvbrowser.core.plugin.PluginProxyManager$5.run(PluginProxyManager.java:1318)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
        at java.lang.Thread.run(Unknown Source)

"pool-1-thread-4" prio=6 tid=0x0000000013ba2800 nid=0x468 waiting on condition [0x000000001980e000]
   java.lang.Thread.State: TIMED_WAITING (sleeping)
        at java.lang.Thread.sleep(Native Method)
        at tvbrowser.core.plugin.PluginProxyManager$5.run(PluginProxyManager.java:1318)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
        at java.lang.Thread.run(Unknown Source)

"pool-1-thread-3" prio=6 tid=0x0000000013ba2000 nid=0xe00 waiting on condition [0x00000000138af000]
   java.lang.Thread.State: TIMED_WAITING (sleeping)
        at java.lang.Thread.sleep(Native Method)
        at tvbrowser.core.plugin.PluginProxyManager$5.run(PluginProxyManager.java:1318)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
        at java.lang.Thread.run(Unknown Source)

"pool-1-thread-2" prio=6 tid=0x0000000013ba1000 nid=0xc8c waiting on condition [0x0000000019bdf000]
   java.lang.Thread.State: TIMED_WAITING (sleeping)
        at java.lang.Thread.sleep(Native Method)
        at tvbrowser.core.plugin.PluginProxyManager$5.run(PluginProxyManager.java:1318)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
        at java.lang.Thread.run(Unknown Source)

"pool-1-thread-1" prio=6 tid=0x0000000013ba0800 nid=0x12b4 waiting on condition [0x0000000019a7f000]
   java.lang.Thread.State: TIMED_WAITING (sleeping)
        at java.lang.Thread.sleep(Native Method)
        at tvbrowser.core.plugin.PluginProxyManager$5.run(PluginProxyManager.java:1318)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
        at java.lang.Thread.run(Unknown Source)

"D3D Screen Updater" daemon prio=8 tid=0x00000000145c8000 nid=0xde4 in Object.wait() [0x000000001671f000]
   java.lang.Thread.State: TIMED_WAITING (on object monitor)
        at java.lang.Object.wait(Native Method)
        - waiting on <0x00000007d977cd28> (a java.lang.Object)
        at sun.java2d.d3d.D3DScreenUpdateManager.run(Unknown Source)
        - locked <0x00000007d977cd28> (a java.lang.Object)
        at java.lang.Thread.run(Unknown Source)

"TimerQueue" daemon prio=6 tid=0x000000000fafc000 nid=0xfbc waiting on condition [0x000000001378f000]
   java.lang.Thread.State: TIMED_WAITING (parking)
        at sun.misc.Unsafe.park(Native Method)
        - parking to wait for  <0x00000007d9a27620> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
        at java.util.concurrent.locks.LockSupport.parkNanos(Unknown Source)
        at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(Unknown Source)
        at java.util.concurrent.DelayQueue.take(Unknown Source)
        at javax.swing.TimerQueue.run(Unknown Source)
        at java.lang.Thread.run(Unknown Source)

"DestroyJavaVM" prio=6 tid=0x00000000021db000 nid=0xee4 waiting on condition [0x0000000000000000]
   java.lang.Thread.State: RUNNABLE

"AWT-EventQueue-0" prio=6 tid=0x000000000f7e7800 nid=0xdec waiting on condition [0x000000000fe6f000]
   java.lang.Thread.State: WAITING (parking)
        at sun.misc.Unsafe.park(Native Method)
        - parking to wait for  <0x0000000780f71230> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
        at java.util.concurrent.locks.LockSupport.park(Unknown Source)
        at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(Unknown Source)
        at java.awt.EventQueue.getNextEvent(Unknown Source)
        at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
        at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
        at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
        at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
        at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
        at java.awt.EventDispatchThread.run(Unknown Source)

"AWT-Windows" daemon prio=6 tid=0x000000000cf23800 nid=0x11c0 runnable [0x000000000e53f000]
   java.lang.Thread.State: RUNNABLE
        at sun.awt.windows.WToolkit.eventLoop(Native Method)
        at sun.awt.windows.WToolkit.run(Unknown Source)
        at java.lang.Thread.run(Unknown Source)

"AWT-Shutdown" prio=6 tid=0x000000000cf2e800 nid=0x8e8 in Object.wait() [0x000000000ee9f000]
   java.lang.Thread.State: WAITING (on object monitor)
        at java.lang.Object.wait(Native Method)
        - waiting on <0x00000007d9a2a4a0> (a java.lang.Object)
        at java.lang.Object.wait(Object.java:503)
        at sun.awt.AWTAutoShutdown.run(Unknown Source)
        - locked <0x00000007d9a2a4a0> (a java.lang.Object)
        at java.lang.Thread.run(Unknown Source)

"Java2D Disposer" daemon prio=10 tid=0x000000000cdee800 nid=0x1350 in Object.wait() [0x000000000ed4f000]
   java.lang.Thread.State: WAITING (on object monitor)
        at java.lang.Object.wait(Native Method)
        - waiting on <0x00000007d9568538> (a java.lang.ref.ReferenceQueue$Lock)
        at java.lang.ref.ReferenceQueue.remove(Unknown Source)
        - locked <0x00000007d9568538> (a java.lang.ref.ReferenceQueue$Lock)
        at java.lang.ref.ReferenceQueue.remove(Unknown Source)
        at sun.java2d.Disposer.run(Unknown Source)
        at java.lang.Thread.run(Unknown Source)

"Service Thread" daemon prio=6 tid=0x000000000cc86000 nid=0xd44 runnable [0x0000000000000000]
   java.lang.Thread.State: RUNNABLE

"C2 CompilerThread1" daemon prio=10 tid=0x000000000cc82000 nid=0x1070 waiting on condition [0x0000000000000000]
   java.lang.Thread.State: RUNNABLE

"C2 CompilerThread0" daemon prio=10 tid=0x000000000cc6b800 nid=0x1394 waiting on condition [0x0000000000000000]
   java.lang.Thread.State: RUNNABLE

"Attach Listener" daemon prio=10 tid=0x000000000cc6a800 nid=0x1390 runnable [0x0000000000000000]
   java.lang.Thread.State: RUNNABLE

"Signal Dispatcher" daemon prio=10 tid=0x000000000cc69800 nid=0xf40 waiting on condition [0x0000000000000000]
   java.lang.Thread.State: RUNNABLE

"Finalizer" daemon prio=8 tid=0x000000000cbe7800 nid=0x7e8 in Object.wait() [0x000000000dfff000]
   java.lang.Thread.State: WAITING (on object monitor)
        at java.lang.Object.wait(Native Method)
        - waiting on <0x00000007d9a4e100> (a java.lang.ref.ReferenceQueue$Lock)
        at java.lang.ref.ReferenceQueue.remove(Unknown Source)
        - locked <0x00000007d9a4e100> (a java.lang.ref.ReferenceQueue$Lock)
        at java.lang.ref.ReferenceQueue.remove(Unknown Source)
        at java.lang.ref.Finalizer$FinalizerThread.run(Unknown Source)

"Reference Handler" daemon prio=10 tid=0x00000000023d7800 nid=0x9fc in Object.wait() [0x000000000e14f000]
   java.lang.Thread.State: WAITING (on object monitor)
        at java.lang.Object.wait(Native Method)
        - waiting on <0x00000007d9a4dec8> (a java.lang.ref.Reference$Lock)
        at java.lang.Object.wait(Object.java:503)
        at java.lang.ref.Reference$ReferenceHandler.run(Unknown Source)
        - locked <0x00000007d9a4dec8> (a java.lang.ref.Reference$Lock)

"VM Thread" prio=10 tid=0x000000000cbe1800 nid=0x76c runnable

"GC task thread#0 (ParallelGC)" prio=6 tid=0x00000000020c8000 nid=0x638 runnable

"GC task thread#1 (ParallelGC)" prio=6 tid=0x00000000020c9800 nid=0xa2c runnable

"GC task thread#2 (ParallelGC)" prio=6 tid=0x00000000020cb000 nid=0xe3c runnable

"GC task thread#3 (ParallelGC)" prio=6 tid=0x00000000020cd000 nid=0x10b4 runnable

"GC task thread#4 (ParallelGC)" prio=6 tid=0x00000000020d0800 nid=0x11fc runnable

"GC task thread#5 (ParallelGC)" prio=6 tid=0x00000000020d1800 nid=0x890 runnable

"VM Periodic Task Thread" prio=10 tid=0x000000000cca3000 nid=0xf88 waiting on condition

JNI global references: 1238

Heap
 PSYoungGen      total 70976K, used 34388K [0x00000007d5560000, 0x00000007de000000, 0x0000000800000000)
  eden space 65536K, 44% used [0x00000007d5560000,0x00000007d71a91c8,0x00000007d9560000)
  from space 5440K, 99% used [0x00000007d9560000,0x00000007d9aac010,0x00000007d9ab0000)
  to   space 5440K, 0% used [0x00000007ddab0000,0x00000007ddab0000,0x00000007de000000)
 ParOldGen       total 87424K, used 18815K [0x0000000780000000, 0x0000000785560000, 0x00000007d5560000)
  object space 87424K, 21% used [0x0000000780000000,0x000000078125ffa0,0x0000000785560000)
 PSPermGen       total 21824K, used 21822K [0x000000077ae00000, 0x000000077c350000, 0x0000000780000000)
  object space 21824K, 99% used [0x000000077ae00000,0x000000077c34f890,0x000000077c350000)

uzi
Site Admin
Beiträge: 2294
Registriert: 02 Jul 2009, 14:32

Re: CPU Spikes bei Minimierung ins Tray

Beitrag von uzi »

hm. also soweit ich das erkennen kann, sind alle tvb-threads 'waiting'. sprich: die tun nichts und fressen keine cpu. daher wäre jetzt meine folgerung, dass es da irgendein bizarres java-problem gibt. hilft dir natürlich auch nicht wirklich weiter...
derDay

Re: CPU Spikes bei Minimierung ins Tray

Beitrag von derDay »

ich liebe bizarre Probleme, einfach kann jeder :D
Ok, da ich stark davon ausgehe, dass dies mit dem letzten JRE Update kam (ja, in kontrolliere häufiger meine Prozesse), warte ich mal die nächste JRE Version ab. Wenn ich mich richtig erinner, kommt die schon nächste Woche?! Egal, ich berichte dann mal nach. Falls trotzdem jemand einen Geistesblitz hat, ich höre :)

P.S. bei neuen Javaversionen deinstalliere ich immer erst die alte, dann installiere ich die neue Version. Die gefühlten letzten 100 Male gab es dabei auch keinen Fehler oder Abbruch, von daher gehe ich eigentlich davon aus, dass meine Javainstallation sauber ist.
HaasUwe
Gold Member
Beiträge: 318
Registriert: 26 Feb 2012, 17:09
Wohnort: Großraum Frankfurt am Main

Re: CPU Spikes bei Minimierung ins Tray

Beitrag von HaasUwe »

@uzi:
Leider konnte ich bei SourceForge keine Einträge für die von mir verdächtigten PlugIns Reminder und Favorites finden.
Wer zeichnet für diese eigentlich verantwortlich?
In den PlugIns (Einstellungsseite) selbst ist nichts angegeben, im gegensatz zu den meisten anderen PlugIns.
Win XP Pro SP3
Java JRE 6 Upd 41
TV-Browser v3.3RC1 Build 1812 vom 13.02.2013
HaasUwe
Gold Member
Beiträge: 318
Registriert: 26 Feb 2012, 17:09
Wohnort: Großraum Frankfurt am Main

Re: CPU Spikes bei Minimierung ins Tray

Beitrag von HaasUwe »

derDay hat geschrieben:warte ich mal die nächste JRE Version ab. Wenn ich mich richtig erinner, kommt die schon nächste Woche?! Egal, ich berichte dann mal nach.
Soll am 19.02. released werden
derDay hat geschrieben: P.S. bei neuen Javaversionen deinstalliere ich immer erst die alte, dann installiere ich die neue Version. Die gefühlten letzten 100 Male gab es dabei auch keinen Fehler oder Abbruch, von daher gehe ich eigentlich davon aus, dass meine Javainstallation sauber ist.
Ist nur beim Wechsel der Hauptversion, also JRE 6 nach 7 , JRE 7 nach 8 u.sw. nötig
Innerhalb einer Version, also JRE 7u12 nach 7u13, sorgt der Installer selber für das korrekte Entfernen der alten Installation. (Warum nicht beim Wechsel derJava-Version, bleibt Oracles Geheimnis)
Win XP Pro SP3
Java JRE 6 Upd 41
TV-Browser v3.3RC1 Build 1812 vom 13.02.2013
uzi
Site Admin
Beiträge: 2294
Registriert: 02 Jul 2009, 14:32

Re: CPU Spikes bei Minimierung ins Tray

Beitrag von uzi »

daher gehe ich eigentlich davon aus, dass meine Javainstallation sauber ist.
ich vermute, wenn deine java-installation irgendwie verkackt wäre, dann hättest du ganz andere probleme, als eine seltsame cpu-auslastung. da das ganze ja offenbar irgendwie mit dem tray verbandelt ist, kann ich mir alles mögliche vorstellen. da würde es mich auch nicht wundern, wenn ein graka-treiber letztlich schuld ist, dass java da irgendwelche extrarunden dreht. da bin ich ehrlich gesagt nicht fit genug, um sowas noch analysieren zu können.

Leider konnte ich bei SourceForge keine Einträge für die von mir verdächtigten PlugIns Reminder und Favorites finden.
Wer zeichnet für diese eigentlich verantwortlich?
In den PlugIns (Einstellungsseite) selbst ist nichts angegeben, im gegensatz zu den meisten anderen PlugIns.
ich hab keinen blassen dunst. ich bin hier nur der omdb-hansel ;).

Ist nur beim Wechsel der Hauptversion, also JRE 6 nach 7 , JRE 7 nach 8 u.sw. nötig
eigentlich nichtmal das. auf arbeit hab ich glaub ich sogar noch ein 1.4er java drauf... parallel zu verschiedensten 1.6er versionen und natürlich 7. dazu dann noch diverse jdks... langer rede kurzer sinn: parallel-installationen sind ansich kein problem. nur mit 64bit und 32bit mischmisch wirds uu anstrengend.
Zuletzt geändert von uzi am 15 Feb 2013, 17:47, insgesamt 1-mal geändert.
Antworten