GruberMa Posted October 18, 2012 Share Posted October 18, 2012 (edited) Hallo! Ich nutze das Recording Service 1.21.2.0 und den DVBViewer 4.9.9.1 auf demselben Rechner. Der DVBViewer ist so konfiguriert, dass er sich das EPG vom Service holt, keine EPG-Daten selbst speichert und auch kein zusätzliches EPG (Mediahighway etc.) empfängt. Ich spiele derzeit mit DVBViewer.EPGManager.GetAsArray, dabei sind mir zwei Dinge aufgefallen: Abweichung Anzahl EPG-Einträge zum Recording Service DVBViewer.EPGManager.GetAsArray(0,0,0,EPGArrayName) liefert die Anzahl der EPG-Einträge zurück. Diese ist auf meinem System immer um einiges geringer als die, die im Recording Service angezeigt wird (aktuell 139.953 zu 144.637). Wie kann das sein? Potentielles Memory-Leak Es ist leicht möglich, dass es kein Memory-Leak gibt, sondern dass ich nicht sauber programmiere. Wenn ich mehrmals hintereinander DVBViewer.EPGManager.GetAsArray(0,0,0,EPGArrayName) ohne "erase EPGArrayName" aufrufe, wächst der vom DVBViewer verbrauchte Speicher immer weiter bis ca. 4 GB erreicht sind und der DVBViewer nicht mehr richtig reagiert (Senderwechsel etc.). Ist das beabsichtigtes Verhalten oder wird darauf vergessen, Speicher freizugeben? Der folgende VBScript-Code kann zum Nachstellen verwendet werden: if GetDVBVObject(DVBViewer) then AnzahlDurchlauf=1 do while AnzahlDurchlauf >0 wscript.echo "Durchlauf " & AnzahlDurchlauf & ", " & DVBViewer.epgmanager.getasarray(0,0,0,EPGArrayName) & " EPG-Einträge." 'Wenn folgende Zeile auskommentiert ist, wächst der vom DVBViewer benötigte Speicher immer weiter 'erase EPGArrayName AnzahlDurchlauf=AnzahlDurchlauf+1 loop end if Function GetDVBVObject(Obj) On Error Resume Next Err.Clear: Set Obj=GetObject(, "DVBViewerServer.DVBViewer") If Err.Number=424 OR Err.Number=429 Then Set Obj=Nothing GetDVBVObject=false wscript.echo "DVBViewer muss gestartet sein, damit das Script funktioniert." Else GetDVBVObject=true End If on error goto 0 End Function LG, GruberMa Edited October 18, 2012 by GruberMa Quote Link to comment
Lars_MQ Posted October 18, 2012 Share Posted October 18, 2012 DVBViewer.EPGManager.GetAsArray(0,0,0,EPGArrayName) liefert die Anzahl der EPG-Einträge zurück. Diese ist auf meinem System immer um einiges geringer als die, die im Recording Service angezeigt wird (aktuell 139.953 zu 144.637).Wie kann das sein? Der DVBViewer lädt nur Einträge, die vom Zeitpunkt "jetzt" an gültig sind. Der RS hält auch noch ältere Einträge (24h) vor. Das Speicherleak ist eher im Script vorhanden. Du übergibst eine schon mit Daten gefüllte Liste. Das ist aus mehreren gründen problematisch: - Der Speicherbereich muss an den DVBViewer gemarshalt werden, das kostet unnötig viel zeit. - Das Windows COM Subsystem, das im DVBViewer Context läuft schluckt den speicher und bläht den (unschuldigen) DVBViewer auf. Wenn Du sowas machst, solltest du immer sicherstellen, dass die entsprechende Variable "leer" ist. Quote Link to comment
GruberMa Posted October 18, 2012 Author Share Posted October 18, 2012 Danke Lars, damit sind beide Fragen beantwortet! LG, GruberMa Quote Link to comment
Webturtle Posted October 18, 2012 Share Posted October 18, 2012 (edited) Hallo, ich habe auch ein Problem mit dem Arbeitsspeicher. Im Laufe eines Tages wächst der vom DVBViewer belegte Arbeitsspeicher auf über 1,2 GB an bei 2 GB Arbeitsspeicher (http://www.DVBViewer...__1#entry325929) und das ohne ein Script. Es ist sogar schon dazu gekommen, daß der DVBViewer aus diesem Grund nicht mehr reagiert hat. Vielleicht liegt die Ursache ja doch irgendwie am EPG. Kann man das Abrufen von EPG-Daten generell ausschalten, also ohne in der Senderliste den EPG zu deaktivieren (ev. in den Einstellungen)? Ich sitze im Moment nicht am Rechner und kann daher nicht nachsehen. Aber diese Möglichkeit einer Eingrenzung der Fehlerursache erscheint mir vielversprechend. Viele Grüße Webturtle Edited October 18, 2012 by Webturtle Quote Link to comment
GruberMa Posted October 18, 2012 Author Share Posted October 18, 2012 Settings, Options, EPG, Do not receive EPG data. Quote Link to comment
Webturtle Posted October 19, 2012 Share Posted October 19, 2012 Hallo, vielen Dank GruberMa. Ich habe es in den Einstellungen zum EPG gefunden: EPG Daten einlesen. Ich werde diese Einstellung mal deaktivieren und nachsehen, ob es damit besser wird. Übrigens waren es Nachmittags ca. 300 MB und am nächsten Morgen 1,2 GB. Viele Grüße Webturtle Quote Link to comment
Webturtle Posted October 23, 2012 Share Posted October 23, 2012 Hallo, ich habe jetzt probeweise das Einlesen des EPG deaktiviert. Aber am nächsten Morgen waren wieder 900 MB Speicher vom DVBViewer belegt. Ich glaube daher, daß das Speicherleak seine Ursache nicht im EPG-Modul des DVBViewer hat. Viele Grüße Webturtle Quote Link to comment
Tjod Posted October 23, 2012 Share Posted October 23, 2012 Waren bei dem Test sicher keine Plugins und auch keine Scripte aktiv? Eventuell mal testen ob das auch ohne wiedergebe auftritt. Also den DVBViewer mit -c starten und auch nie die wiedergebe aufbauen. Sondern nur eine Aufnahme im Hintergehung mal laufen lassen. Quote Link to comment
Webturtle Posted October 25, 2012 Share Posted October 25, 2012 Hallo Tjod, Skripte waren keine aktiv. Normalerweise verwende ich, wenn überhaupt nur Autohotkey Scripte. Ich habe jetzt Deinem Rat folgend testweise das Plugins-Verzeichnis in Plugins_No umbenannt. Damit sind keine Plugins mehr aktiv, zumindest fehlt jetzt der Menüpunkt Plugins. Den DVBViewer habe ich mit -debug und -c gestartet, ohne die Wiedergabe zu aktivieren. Auf den ersten Blick scheint der belegt Arbeitsspeicher unter 100 MB zu bleiben. Aber ich muß mal sehen wieviel es morgen früh sind. Wenn er weiter niedrig bleibt ich ausprobieren, ob es an der Wiedergabe oder an den Plugins und wenn ja welchen liegt. Den Abruf von Wetterdaten habe ich auch deaktiviert, da der Rechner in der Regel keinen Zugang zum Internet hat. Mögliche Antworten zu meinem Problem bitte in Zukunft auf http://www.DVBViewer.tv/forum/topic/44254-arbeitsspeicher/page__p__325929__hl__arbeitsspeicher__fromsearch__1#entry325929, wo ich das Problem früher schon einmal gepostet hatte. (Ich bin nur zufällig durch die Frage von GruberMa zu möglichen Memoryleaks im Hinblick auf den EPG hierhergelangt) Viele Grüße Webturtle Quote Link to comment
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.