Motorrad schrieb:
> 1) Contoller bootet länger als 3 Minuten wenn ich es mit beim booten
> starte. Ohne dauerts keine 30 Sekunden.
Was heißt "Controller"? Nutzt du Qt for MCUs?
> 2 ) CPU auslast zu hoch (ca. 20-40% dauerlast nur durch GUI)
Wird da viel animiert, bzw. sendest du permanent Updates deiner Daten an
die GUI? Normalerweise sollte da nicht viel Last entstehen, solange sich
nicht dauernd was ändert bzw. aktualisiert werden muss.
> 3) Speicherverbrauch viel zu hoch für ein GUI Prozess
Qt/QML braucht viel Speicher (vor allem Grafikspeicher), weil sehr viel
Caching der gerenderten Items (als Texturen) statt findet. Das wird
gemacht, um es schneller zu machen, weil der Aufwand, alles in jedem
Frame komplett neu zu rendern, zu hoch wäre.
> Bitte verbessern wenn ich falsch bin:
> - QML lädt alle Fenster, auch wenn diese nicht angezeigt werden
Bei QML gibt es keine Fenster. Wenn du die Komponenten meinst: Er lädt
halt alle, die du in deinem QML direkt angibst.
> - QML reagiert auf Events obwohl die Seite nicht angezeigt wird
> (xxxOnChanged:)
Ich denke, ja. Er kann ja auch nicht entscheiden, ob da wirklich nur
eine Anzeige gemacht wird, die im Nichts verpufft oder auch irgendwas
anderes, das auf jeden Fall benötigt wird.
> Da alle QMLs im Hintergrund laufen, ist klar warum CPU und Speicher
> ausgelastet werden.
>
> Gibt es die Möglichkeit, die anzuzeigende Seite dynamisch zu
> laden/erstellen und beim Wechseln auf ein anderen diese wieder
> loszulassen ?
Ja. Man kann Komponenten auch dynamisch nachladen und zerstören.
> LOADER ist halbe Wahrheit ?!
Warum? Der ist doch genau dafür da. Alternativ kann man im JavaScript
mit createComponent dynamisch Komponenten erstellen und mit
Component.destory() wieder entfernen. Aber ich denke, der Loader ist da
der elegantere Weg.
Aus der Doku von Loader:
Loader can load a QML file (using the source property) or a Component
object (using the sourceComponent property). It is useful for delaying
the creation of a component until it is required: for example, when a
component should be created on demand, or when a component should not be
created unnecessarily for performance reasons.
Das klingt exakt nach deinem Anwendungsfall.