DMXC 3.3.0 RC1: "System.OutOfMemoryException" bei großen Timecodeshows

  • Servus,


    ich bastele im Moment für unseren lokalen Fasching mit DMXC3 & TimeCode-Shows.

    Für eine Show habe ich vor kurzem Executoren aufgezeichnet. Seit dem lässt sich die Show

    im TimeCode-Player nicht mehr öffnen.

    Laut dem GUI-Log (siehe Anhang) tritt der Fehler "System.OutOfMemoryException" auf.


    Wenn ich den Fehler richtig verstehe, kann DMXC3 in diesem Moment nicht mehr RAM verwenden.
    Das das DMXC3-GUI allerdings nie mehr als ungefähr 1GB RAM verwendet, deutet für mich auf eine Beschränkung in der verwendbaren RAM-Menge hin.

    Gibt es eine (einfache) Möglichkeit, diese Beschränkung (falls sie existiert :) ) soweit zu erhöhen, dass ich auch große TimeCode-Shows öffnen kann?


    Viele Grüße,

    Fabian

  • Das das DMXC3-GUI allerdings nie mehr als ungefähr 1GB RAM verwendet, deutet für mich auf eine Beschränkung in der verwendbaren RAM-Menge hin.

    Gibt es eine (einfache) Möglichkeit, diese Beschränkung (falls sie existiert :) ) soweit zu erhöhen, dass ich auch große TimeCode-Shows öffnen kann?

    Genau das ist leider das Problem. Zwischen 1 und 2GB RAM ist leider aktuell die Schallmauer, bis zu der die GUI funktioniert. Das liegt daran, dass DMXControl 3 in weiten Teilen (ausgenommen vom Umbra) eine 32bit-Anwendung ist und einfach nicht mehr Speicher adressieren kann. Das geht rein technisch nicht. Mit 64bit-Anwendungen ist das anders. Solche können deutlich mehr Speicher adressieren, weit über die heute üblichen 32 oder 64GB Arbeitsspeicher. Jetzt fragst du dich sicher, warum DMXControl 3 keine 64bit-Anwendung ist. Wir würden DMXControl 3 sehr gerne auf eine 64bit-Anwendung umstellen, aber leider geht das aktuell nicht. Beim Kernel liegt das an den ganzen DMX-Plugins, die dort laufen. Würden wir den Kernel einfach auf 64bit umstellen, würden alle DMX-Plugins nicht mehr tun, die wir wegen den Abhängigkeiten zu den Programmbibliotheken der Hersteller nur als 32bit compilieren können (und das sind aktuell etwa 95%). Hier müssen wir erst noch einen Zwischenlayer einziehen, der die Adaption von 32bit auf 64bit macht. Das ist geplant, aber noch nicht umgesetzt. In der GUI hindert uns XNA an einer Umstellung auf 64bit. Dies ist eine von Microsoft entwickelte, schon länger eingestellte GameEngine (so etwas ähnliches wie Unity oder Unreal Engine, die man von einigen Spielen her kennt), welche die StageView, das Input Assignment, den Network Monitor und den Programmer treibt. Wir hatten XNA damals verwendet, weil nur das die nötige Performance hatte, diese Fenster sauber anzuzeigen. Alles andere war so laggy oder buggy, dass man diese Fenster nicht benutzen hätte können. Leider wird XNA wie gesagt nicht mehr weiterentwickelt und unterstützt auch kein 64bit. Wir sind dabei, die genannten Fenster in den nächsten Versionen von DMXControl 3 Schritt für Schritt auszutauschen und dabei auf ein anderes Framework zu wechseln (WPF) was schnell ist und 64bit unterstützt (treibt u.a. schon die Executoren, die Project Administration und den Timecode Player). Der Austausch der XNA-Fenster ist bei uns auch recht weit oben auf der Prio-Liste. Allerdings sind diese Fenster auch wahre Klopper was den Umfang angeht und das wird nicht ganz so einfach.


    Die kurze Antwort auf deine Frage lautet also: Ja, es gibt eine Möglichkeit, aber diese ist leider weder einfach noch schnell realisierbar und es ist auch leider keine, die du als User hast :(


    Viele Grüße

    JP

    im Falle eines Falles klebt Gaffa einfach alles, denn Gaffa ist dein Freund und Helfer :thumbup:

    Edited 2 times, last by JPK ().

  • Hallo!


    Was verstehst du bei dir unter "großen" Timecodeshows? Fünf Minuten oder eine Stunde? Oder auch wie viele? Hintergrund ist, dass es technisch auch möglich sein (sollte), dass du Timecodeshows auch ohne die Audiodateien selbst im Projekt zu haben abspielen können solltest - zumindest entsprechend meines Verständnis des Tickets FS#5164 : TCP ohne Audio abspielen. Dem entsprechend würdest du dir im Moment die Audiodatei immer nur für die Show ins Projekt laden, an der du gerade arbeitest. Während der eigentlichen Show kommt dann das Audio von anderer Stelle - also sprich außerhalb von DMXC.


    Stefan

  • LightningBrothers

    Changed the title of the thread from “DMXControl 3.3.0 RC1 "System.OutOfMemoryException"” to “DMXC 3.3.0 RC1: "System.OutOfMemoryException" bei großen Timecodeshows”.