Programm braucht ständig mehr Speicher - Lazarus unter Raspi

Rund um die LCL und andere Komponenten

Re: Programm braucht ständig mehr Speicher - Lazarus unter R

Beitragvon m.fuchs » 10. Jan 2017, 20:31 Re: Programm braucht ständig mehr Speicher - Lazarus unter R

Mathias hat geschrieben:
Oh, ich sehe gerade, es gibt ein paar neue Scripts, die waren vor einigen Tagen noch nicht da: http://blog.boberglund.com/

Wo sieht du da neue Scripte ?
Ich sehe da nur fertige fpc-binäris.

FPC and Lazarus installation script for Raspberry Pi2
FPC and Lazarus local installation script for Raspberry Pi3
Software, Bibliotheken, Vorträge und mehr: https://www.ypa-software.de
m.fuchs
 
Beiträge: 2005
Registriert: 22. Sep 2006, 18:32
Wohnort: Berlin
OS, Lazarus, FPC: Winux (L 1.8.4, FPC 3.0.4) | 
CPU-Target: x86, x64, arm
Nach oben

Beitragvon Mathias » 10. Jan 2017, 21:18 Re: Programm braucht ständig mehr Speicher - Lazarus unter R

m.fuchs hat geschrieben:
Mathias hat geschrieben:
Oh, ich sehe gerade, es gibt ein paar neue Scripts, die waren vor einigen Tagen noch nicht da: http://blog.boberglund.com/

Wo sieht du da neue Scripte ?
Ich sehe da nur fertige fpc-binäris.

FPC and Lazarus installation script for Raspberry Pi2
FPC and Lazarus local installation script for Raspberry Pi3

Ich dachte, die beiden seien einer der alten ich ich gerade installiert habe.
Ein bisschen mehr Infos auf der Seite wären sicher hilfreich. :wink:
Mit Lazarus sehe ich gün
Mit Java und C/C++ sehe ich rot
Mathias
 
Beiträge: 4343
Registriert: 2. Jan 2014, 17:21
Wohnort: Schweiz
OS, Lazarus, FPC: Linux (die neusten Trunc) | 
CPU-Target: 64Bit
Nach oben

Beitragvon Timm Thaler » 10. Jan 2017, 21:23 Re: Programm braucht ständig mehr Speicher - Lazarus unter R

Nope. Installation script ... 2 ist das Alte, was ich auch auf dem 3er erfolgreich verwendet habe.
Installation script ... 3 ist neu.

Da FCP 3 nicht in den Repos auftaucht, wie bekommt man eigentlich jetzt die aktuelle Version mit dem Bugfix installiert? sudo update + upgrade geht ja dann auch nicht. Einfach das Script nochmal laufen lassen?
Timm Thaler
 
Beiträge: 841
Registriert: 20. Mär 2016, 22:14
OS, Lazarus, FPC: Win7-64bit Laz1.9.0 FPC3.1.1 für Win, RPi, AVR embedded | 
CPU-Target: Raspberry Pi 3
Nach oben

Beitragvon Timm Thaler » 12. Jan 2017, 02:35 Re: Programm braucht ständig mehr Speicher - Lazarus unter R

Michl hat geschrieben:Der Fehler sollte in Lazarus Trunk Revision 53898 behoben sein.


Nope. Hab gerade mit dem Bo Berglund Script für den Pi3 neu compiliert und hab jetzt Lazarus 1.6.2 vom 12.01., FPC 3.0.0, SVN-Revision 53931, arm-linux-gtk 2.

Memleak mit TStaticText startet bei 19MB und ist schon nach wenigen Minuten bei 21MB.
Timm Thaler
 
Beiträge: 841
Registriert: 20. Mär 2016, 22:14
OS, Lazarus, FPC: Win7-64bit Laz1.9.0 FPC3.1.1 für Win, RPi, AVR embedded | 
CPU-Target: Raspberry Pi 3
Nach oben

Beitragvon Timm Thaler » 12. Jan 2017, 03:29 Re: Programm braucht ständig mehr Speicher - Lazarus unter R

Jetzt auf Qt4 umgestellt. Ich weiss zwar nicht, was ich da genau getan habe ;-), aber es funktioniert, die IDE hat Qt-Lock und die Programme auch.

Memleak mit TStaticText braucht jetzt zwar 40.1MB, steht aber wie angenagelt.
Timm Thaler
 
Beiträge: 841
Registriert: 20. Mär 2016, 22:14
OS, Lazarus, FPC: Win7-64bit Laz1.9.0 FPC3.1.1 für Win, RPi, AVR embedded | 
CPU-Target: Raspberry Pi 3
Nach oben

Beitragvon Timm Thaler » 24. Jan 2019, 14:53 Re: Programm braucht ständig mehr Speicher - Lazarus unter R

Michl hat geschrieben:Der Fehler sollte in Lazarus Trunk Revision 53898 behoben sein.


Der Fehler besteht auch zwei Jahre später im aktuellen Trunk Lazarus 1.9 / FPC 3.1.1 immer noch. Hab gerade ein unter Windows mit win32 erstelltes Programm mit Statusbar für den Raspberry / Linux ARM mit gtk2 portiert. Da werden sekündlich eingehende Daten in der Statusbar angezeigt und der Speicher läuft innerhalb weniger Stunden um einige zig MB hoch. Kommentiere ich die Zuweisung an statuspanel.Text aus, bleibt der Speicherbedarf konstant.
Timm Thaler
 
Beiträge: 841
Registriert: 20. Mär 2016, 22:14
OS, Lazarus, FPC: Win7-64bit Laz1.9.0 FPC3.1.1 für Win, RPi, AVR embedded | 
CPU-Target: Raspberry Pi 3
Nach oben

Beitragvon Timm Thaler » 26. Jan 2019, 14:01 Re: Programm braucht ständig mehr Speicher - Lazarus unter R

Muss das mal präzisieren: Der Fehler tritt auf Linux-ARM nicht mehr auf im TStaticText.

Er ist unter Lazarus 2.0, FPC 3.2 mit GTK2 auf Linux-ARM nach wie vor reproduzierbar indem man eine Statusbar mit einem Panel auf ein Fenster packt, dazu einen Timer und in der Statusbar wechselnden Text anzeigen läßt:

Code: Alles auswählen
procedure Tgui.tim_timerTimer(Sender: TObject);
var
  txt : string;
begin
  cykl += 1;
  If cykl >= 50 then cykl := 1;
  txt := StringOfChar('I', cykl);
  sts_bar.Panels[0].Text := txt;
end;     


Dabei den Speicherbedarf im Taskmanager beobachten, der geht innerhalb weniger Minuten mehrere MB hoch.
Timm Thaler
 
Beiträge: 841
Registriert: 20. Mär 2016, 22:14
OS, Lazarus, FPC: Win7-64bit Laz1.9.0 FPC3.1.1 für Win, RPi, AVR embedded | 
CPU-Target: Raspberry Pi 3
Nach oben

Beitragvon martin_frb » 28. Jan 2019, 13:33 Re: Programm braucht ständig mehr Speicher - Lazarus unter R

https://bugs.freepascal.org/view.php?id=34951#c113651

Wenn jemand der das Problem hat, ein valgrind log erstellen koennte....
martin_frb
 
Beiträge: 418
Registriert: 25. Mär 2009, 21:12
OS, Lazarus, FPC: Laz trunk / fpc latest release / Win and other | 
CPU-Target: mostly 32 bit
Nach oben

Beitragvon Timm Thaler » 28. Jan 2019, 14:39 Re: Programm braucht ständig mehr Speicher - Lazarus unter R

martin_frb hat geschrieben:Wenn jemand der das Problem hat, ein valgrind log erstellen koennte....


Kannst Du den Effekt denn reproduzieren?

Muss mal den dritten Pi freischaufeln und da einen aktuellen fpc trunk erstellen. Das dauert leider auf dem Raspi immer Stunden und ohne swap auf 1GB gehts auch nicht.
Timm Thaler
 
Beiträge: 841
Registriert: 20. Mär 2016, 22:14
OS, Lazarus, FPC: Win7-64bit Laz1.9.0 FPC3.1.1 für Win, RPi, AVR embedded | 
CPU-Target: Raspberry Pi 3
Nach oben

Beitragvon martin_frb » 28. Jan 2019, 19:55 Re: Programm braucht ständig mehr Speicher - Lazarus unter R

Timm Thaler hat geschrieben:
martin_frb hat geschrieben:Wenn jemand der das Problem hat, ein valgrind log erstellen koennte....


Kannst Du den Effekt denn reproduzieren?

Muss mal den dritten Pi freischaufeln und da einen aktuellen fpc trunk erstellen. Das dauert leider auf dem Raspi immer Stunden und ohne swap auf 1GB gehts auch nicht.


Ich hab im Moment nur Fedora. Und da hab ich das Problem nicht.

Aber valgrind erzeugt meist sehr gute logs (Voraussetzung cmem und alle packages mit dwarf).
martin_frb
 
Beiträge: 418
Registriert: 25. Mär 2009, 21:12
OS, Lazarus, FPC: Laz trunk / fpc latest release / Win and other | 
CPU-Target: mostly 32 bit
Nach oben

Beitragvon Michl » 29. Jan 2019, 21:02 Re: Programm braucht ständig mehr Speicher - Lazarus unter R

Ich kann das Problem unter Linux Mint KDE nachstellen. Habe gtk_statusbar_push (https://developer.gnome.org/gtk2/stable/GtkStatusbar.html) in Verdacht, da niemals gtk_statusbar_remove aufgerufen wird, sondern immer nur die Messages weiter nach oben geschoben werden. Allerdings habe ich mal versucht gtk_statusbar_remove_all (ab gtk 2.22 verfügbar) vorher aufzurufen, was die alle Meldungen vom Statusbar Stack entfernen sollte, aber der Speicher wird weiter erhöht.

Leider habe ich zur Zeit ganz andere Baustellen, sodaß ich da erstmal die Finger von lassen muss. @Timm Thaler: Aber vielleicht hast du ja Lust den Fehler zu finden?

gtk2proc.inc:
Code: Alles auswählen
procedure UpdateStatusBarPanel(StatusBar: TObject; Index: integer;  StatusPanelWidget: PGtkWidget);
...
    gtk_statusbar_push(PGTKStatusBar(StatusPanelWidget), ContextID, PGChar(PanelText))
Code: Alles auswählen
type
  TLiveSelection = (lsMoney, lsChilds, lsTime);
  TLive = Array[0..1] of TLiveSelection; 
Michl
 
Beiträge: 2318
Registriert: 19. Jun 2012, 11:54
OS, Lazarus, FPC: Win7 Laz 1.7 Trunk FPC 3.1.1 Trunk | 
CPU-Target: 32Bit/64bit
Nach oben

Beitragvon Timm Thaler » 29. Jan 2019, 22:28 Re: Programm braucht ständig mehr Speicher - Lazarus unter R

Michl hat geschrieben:Aber vielleicht hast du ja Lust den Fehler zu finden?


Dazu bin ich leider zu dumm. Ich habe es immerhin geschafft einen Bugreport zu machen: https://bugs.freepascal.org/view.php?id=34951
Timm Thaler
 
Beiträge: 841
Registriert: 20. Mär 2016, 22:14
OS, Lazarus, FPC: Win7-64bit Laz1.9.0 FPC3.1.1 für Win, RPi, AVR embedded | 
CPU-Target: Raspberry Pi 3
Nach oben

Beitragvon Michl » 30. Jan 2019, 23:16 Re: Programm braucht ständig mehr Speicher - Lazarus unter R

Timm Thaler hat geschrieben:Dazu bin ich leider zu dumm. Ich habe es immerhin geschafft einen Bugreport zu machen: https://bugs.freepascal.org/view.php?id=34951

Ach manno, das ist Quatsch, sowas kannst du schaffen! Ich kann auch nur den Code debuggen und mal etwas auskommentieren und schauen, woher das Problem rührt. Das ist nichts Wildes, nur Zeit.

Wie auch immer, ich habe mir eben die Zeit genommen. Es waren zwei Probleme sichtbar. Das erste war das zuvor geschriebene. Das zweite war, daß bei jeder Textänderung immer wieder erneut das Ownerdraw-Event eingehangen wurde. Ist in Lazarus trunk Revision 60250 behoben (außer OwnerDraw, da müsste man den Text selber verwalten, GTK2 ist hier sehr ungünstig designt).
Code: Alles auswählen
type
  TLiveSelection = (lsMoney, lsChilds, lsTime);
  TLive = Array[0..1] of TLiveSelection; 
Michl
 
Beiträge: 2318
Registriert: 19. Jun 2012, 11:54
OS, Lazarus, FPC: Win7 Laz 1.7 Trunk FPC 3.1.1 Trunk | 
CPU-Target: 32Bit/64bit
Nach oben

• Themenende •
Vorherige

Zurück zu Komponenten und Packages



Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 4 Gäste

porpoises-institution
accuracy-worried