Jump to content

Fragen zu DVBViewer.EPGManager.GetAsArray


GruberMa

Recommended Posts

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 by GruberMa
Link to comment
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.

Link to comment

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 by Webturtle
Link to comment

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

Link to comment

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

Link to comment

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.

Link to comment

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

Link to comment

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...