Fensterentwicklung - Fertiges Fenster drückt die Rechner-Performance

Alles rund um die Programmierung mit Qt
Antworten
Freakadel
Beiträge: 3
Registriert: 21. Oktober 2019 10:33

Fensterentwicklung - Fertiges Fenster drückt die Rechner-Performance

Beitrag von Freakadel » 19. März 2020 13:39

Hallo zusammen,

kurz die Infos, zu meiner Entwicklungsumgebung, bevor ich das Problem beschreibe:
Betriebssystem: Linux Suse Leap 15
Qt: Version 5.11.2

Wir sind hier im Entwicklumgsteam ein bisschen ratlos, und zwar haben wir eine Oberfläche entwickelt, die gewisse analoge Werte von Sensoren sekündlich erfasst. Dieses Fenster beinhaltet noch zusätzlich Menü-Einträge, um die Tabelle ausdrucken zu können, abspeichern oder allgemeine Einstellungen der Tabelle vornehmen zu können.

Soweit so gut, funktioniert auch alles einwandfrei. Zum Einsatz kommt hier auch die Qt-Bibliothek.

Was aber durchaus vorkommen kann, ich kann mehrer Tabellen gleichzeitig öffnen, um mir beispielsweise von einer anderen Anlage deren Analogwerte einzulesen.
Es findet kein riesiger Datenverkehr statt, wenn ich aber so schon ein, zwei Tabellen geöffnet habe, geht gleich die Rechner-Performance in die Knie. Die Tabelle benötigt dann rund, laut "Top-Anzeige unter der Linux Shell" 1GB RAM!!!

Bei einem Rechner mit einmal 4GB Arbeitsspeicher, kann das schon einmal sehr eng werden, wenn noch weitere Applikationen gestartet werden.
Klar...ich kann einerseits den RAM-Speicher erhöhen....das packt das Problem aber nicht an der Wurzel.
Es ist doch nicht normal, dass eine kleine Applikation einen Speicher von einem GB beansprucht?!

Im Anhang habe ich ein Screenshot beigefügt, um euch vielleicht noch einen besseren Überblick geben zu können.


Vielleicht habt ihr ja noch weitere Ideen, Ratschläge oder sogar das Gleiche Problem?


Ich danke euch, für die Unterstützung und wünsche euch soweit alles Gute.

Gruß
Thomas
:)
Dateianhänge
xtabelle.JPG
xtabelle.JPG (150.97 KiB) 223 mal betrachtet

veeman
Beiträge: 269
Registriert: 3. Oktober 2012 01:43
Kontaktdaten:

Re: Fensterentwicklung - Fertiges Fenster drückt die Rechner-Performance

Beitrag von veeman » 22. März 2020 17:05

Ohne weitere Informationen ist es schwierig zu sagen woran das liegt.
Steigt den der Speicherverbrauch über die Laufzeit hinweg oder bleibt dieser stabil?

Da du Sensorwerte erfasst gehe ich mal davon aus, dass diese über eine Schnittstelle erfasst, vorverarbeitet und in der Tabelle angezeigt werden. Passiert dies in Echtzeit? Möglicherweise gibt es hier schon ein Speicherleck.

Desweiteren welches Widget Verwendest du zum Anzeigen dieser Daten?
Die Standardimplementierungen wie QTreeWidget oder QTreeView in Verbindung mit QStandardItemModel können durchaus etwas an RAM brauchen da diese generisch gehalten sind und nicht für größere Daten optimiert sind.
mfg veeman

mage-dev

Freakadel
Beiträge: 3
Registriert: 21. Oktober 2019 10:33

Re: Fensterentwicklung - Fertiges Fenster drückt die Rechner-Performance

Beitrag von Freakadel » 23. März 2020 00:03

veeman hat geschrieben:
22. März 2020 17:05
Ohne weitere Informationen ist es schwierig zu sagen woran das liegt.
Steigt den der Speicherverbrauch über die Laufzeit hinweg oder bleibt dieser stabil?

Nein, der Speicherverbrauch bleibt über die Zeit hinweg ziemlich stabil, nur je mehr Tabellen ich öffne, umso mehr Speicherbedarf steht der CPU nicht mehr zur Verfügung.


Da du Sensorwerte erfasst gehe ich mal davon aus, dass diese über eine Schnittstelle erfasst, vorverarbeitet und in der Tabelle angezeigt werden. Passiert dies in Echtzeit? Möglicherweise gibt es hier schon ein Speicherleck.
Das ist richtig, die Daten werden über eine Schnittstelle in Echtzeit erfasst, ja.....wobei hier das Leitsystem, welches im Hintergrund arbeitet eine zyklische Abarbeitung von einer Sekunde hat. Schneller arbeitet das System auch nicht. Dadruch kann es tatsächlich mal zu einem zeitlichen Versatz kommen. Ist aber bei dieser anwendung nicht weiter tragisch.


Desweiteren welches Widget Verwendest du zum Anzeigen dieser Daten?
Die Standardimplementierungen wie QTreeWidget oder QTreeView in Verbindung mit QStandardItemModel können durchaus etwas an RAM brauchen da diese generisch gehalten sind und nicht für größere Daten optimiert sind.

Es wird hier allgemein das QWidget verwendet, in dem auch mehrer QListWidget auftreten. Also die reine Verwendung von QTreeWidget oder QTreeView wurde nicht benutzt.

Antworten