[GELÖST] Lange Zeit zwischen FormCreate und FormActivate

Rund um die LCL und andere Komponenten
petwey
Beiträge: 57
Registriert: Sa 24. Nov 2012, 19:00
OS, Lazarus, FPC: Windows10 und Linux 32 und 64Bit (L 2.2.2 FPC 3.2.2)
CPU-Target: 32Bit und 64Bit

Re: Lange Zeit zwischen FormCreate und FormActivate

Beitrag von petwey »

Hallo theo,

Ich musste mir erst eine "zeitverzögerte" Version wieder herstellen um den Test durchzuführen. Hier die Ausgabe:

Code: Alles auswählen

.../Lazarus/CEH_AblaufEditor_Advanced$ ./CEH_AblaufEditor_Advanced
[HINT] TWinControl.CreateWnd creating Handle during loading frmHysterese:TfrmHysterese csDesigning=False
[HINT] TWinControl.CreateWnd creating Handle during loading panLeft:TPanel csDesigning=False
[HINT] TWinControl.CreateWnd creating Handle during loading panTop:TPanel csDesigning=False
[HINT] TWinControl.CreateWnd creating Handle during loading pltEW:Tsp_XYPlot csDesigning=False
[HINT] TWinControl.CreateWnd creating Handle during loading panBottom:TPanel csDesigning=False
[HINT] TWinControl.CreateWnd creating Handle during loading pltCrit:Tsp_XYPlot csDesigning=False
Exception at 0000000000480D98: EAccessViolation:
Access violation.
Und hier die Ausgabe der "schnellen" Variante:

Code: Alles auswählen

.../CoderSatz$ ./CEH_AblaufEditor_Advanced
Icon theme "breeze" not found.
[HINT] TWinControl.CreateWnd creating Handle during loading frmHysterese:TfrmHysterese csDesigning=False
[HINT] TWinControl.CreateWnd creating Handle during loading panLeft:TPanel csDesigning=False
[HINT] TWinControl.CreateWnd creating Handle during loading panTop:TPanel csDesigning=False
[HINT] TWinControl.CreateWnd creating Handle during loading pltEW:Tsp_XYPlot csDesigning=False
[HINT] TWinControl.CreateWnd creating Handle during loading panBottom:TPanel csDesigning=False
[HINT] TWinControl.CreateWnd creating Handle during loading pltCrit:Tsp_XYPlot csDesigning=False
Exception at 0000000000485EC8: EAccessViolation:
Access violation.
Zwei Hinweise noch:
1.) Die AccessViolation ist mir bekannt und hat nichts mit der Zeitverzögerung zu tun
2.) Ich denke die meisten wissen das, ABER ich habe keine einzige Zeile Code verändert. Trotzdem verhalten sich beide Programme unterschiedlich!
MfG,
petwey

Windows 10 und Linux 32 und 64Bit (L 2.2.2 FPC 3.2.2)

petwey
Beiträge: 57
Registriert: Sa 24. Nov 2012, 19:00
OS, Lazarus, FPC: Windows10 und Linux 32 und 64Bit (L 2.2.2 FPC 3.2.2)
CPU-Target: 32Bit und 64Bit

Re: Lange Zeit zwischen FormCreate und FormActivate

Beitrag von petwey »

Hallo Forum,

Ich glaube nicht das Euch die Ausgaben meines letzetn Beitrags wirklich weiterhelfen. Deshalb habe ich beide Programme mit strace in der Shell ausgeführt und die Ausgabe in eine Datei umgeleitet.

Für das schnelle Programm fast.txt mit 965KB und für das langsame slow.txt mit 205MB. Die Ausgaben wollte ich mit KDiff3 vergleichen -> hat natürlich nicht geklappt weil die slow.txt so riesig ist.

Danach habe ich beide Dateien mit geany angezeigt und nach gtk gesucht. Bei fast.txt habe ich lediglich 2 Ausgaben gefunden:

Code: Alles auswählen

...
getdents64(6, 0x236e760 /* 0 entries */, 32768) = 0
close(6)                                = 0
readlink("/usr", 0x7ffdc2c0e4c0, 1023)  = -1 EINVAL (Invalid argument)
readlink("/usr/lib", 0x7ffdc2c0e4c0, 1023) = -1 EINVAL (Invalid argument)
readlink("/usr/lib/x86_64-linux-gnu", 0x7ffdc2c0e4c0, 1023) = -1 EINVAL (Invalid argument)
readlink("/usr/lib/x86_64-linux-gnu/qt5", 0x7ffdc2c0e4c0, 1023) = -1 EINVAL (Invalid argument)
readlink("/usr/lib/x86_64-linux-gnu/qt5/plugins", 0x7ffdc2c0e4c0, 1023) = -1 EINVAL (Invalid argument)
readlink("/usr/lib/x86_64-linux-gnu/qt5/plugins/platformthemes", 0x7ffdc2c0e4c0, 1023) = -1 EINVAL (Invalid argument)
readlink("/usr/lib/x86_64-linux-gnu/qt5/plugins/platformthemes/libqgtk3.so", 0x7ffdc2c0e4c0, 1023) = -1 EINVAL (Invalid argument)
openat(AT_FDCWD, "/usr/lib/x86_64-linux-gnu/qt5/plugins/platformthemes/libqgtk3.so", O_RDONLY|O_CLOEXEC) = 6
statx(6, "", AT_STATX_SYNC_AS_STAT|AT_EMPTY_PATH, STATX_ALL, {stx_mask=STATX_ALL|STATX_MNT_ID, stx_attributes=0, stx_mode=S_IFREG|0644, stx_size=346672, ...}) = 0
statx(6, "", AT_STATX_SYNC_AS_STAT|AT_EMPTY_PATH, STATX_ALL, {stx_mask=STATX_ALL|STATX_MNT_ID, stx_attributes=0, stx_mode=S_IFREG|0644, stx_size=346672, ...}) = 0
mmap(NULL, 346672, PROT_READ, MAP_SHARED, 6, 0) = 0x7f6d26652000
close(6)                                = 0
munmap(0x7f6d26652000, 346672)          = 0
readlink("/usr", 0x7ffdc2c0e4c0, 1023)  = -1 EINVAL (Invalid argument)
readlink("/usr/lib", 0x7ffdc2c0e4c0, 1023) = -1 EINVAL (Invalid argument)
readlink("/usr/lib/x86_64-linux-gnu", 0x7ffdc2c0e4c0, 1023) = -1 EINVAL (Invalid argument)
....
Bei dem slow.txt gibt es da ganz viele Einträge, die ich hier gar nicht alle posten kann, aber ein paar zeige ich hier mal. Vielleicht sagt Euch das was:

Code: Alles auswählen

...
mmap(0x7efc9366f000, 24576, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0xba000) = 0x7efc9366f000
close(3)                                = 0
openat(AT_FDCWD, "/lib/x86_64-linux-gnu/libgtk-x11-2.0.so.0", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\0\0\0\0\0\0\0\0"..., 832) = 832
newfstatat(3, "", {st_mode=S_IFREG|0644, st_size=4669864, ...}, AT_EMPTY_PATH) = 0
...
openat(AT_FDCWD, "/usr/share/locale-langpack/de/LC_MESSAGES/messages.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
futex(0x7efc92f6c0a8, FUTEX_WAKE_PRIVATE, 2147483647) = 0
openat(AT_FDCWD, "/usr/share/locale/de_DE.UTF-8/LC_MESSAGES/gtk20.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/usr/share/locale/de_DE.utf8/LC_MESSAGES/gtk20.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/usr/share/locale/de_DE/LC_MESSAGES/gtk20.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/usr/share/locale/de.UTF-8/LC_MESSAGES/gtk20.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/usr/share/locale/de.utf8/LC_MESSAGES/gtk20.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/usr/share/locale/de/LC_MESSAGES/gtk20.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/usr/share/locale-langpack/de_DE.UTF-8/LC_MESSAGES/gtk20.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/usr/share/locale-langpack/de_DE.utf8/LC_MESSAGES/gtk20.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/usr/share/locale-langpack/de_DE/LC_MESSAGES/gtk20.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/usr/share/locale-langpack/de.UTF-8/LC_MESSAGES/gtk20.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/usr/share/locale-langpack/de.utf8/LC_MESSAGES/gtk20.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/usr/share/locale-langpack/de/LC_MESSAGES/gtk20.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/usr/share/locale/de_DE.UTF-8/LC_MESSAGES/libc.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
....
Ich habe in slow auch nach CRITICAL gesucht, aber das ergab gar keine Treffer. Ich habe nicht nach ganzen Wörtern gesucht!
MfG,
petwey

Windows 10 und Linux 32 und 64Bit (L 2.2.2 FPC 3.2.2)

Benutzeravatar
Winni
Beiträge: 1423
Registriert: Mo 2. Mär 2009, 16:45
OS, Lazarus, FPC: Laz2.2.2, fpc 3.2.2
CPU-Target: 64Bit
Wohnort: Fast Dänemark

Re: Lange Zeit zwischen FormCreate und FormActivate

Beitrag von Winni »

Hi!

Ich hatte das gleiche Problem unter Suse Tumbleweed / KDE /gtk2

Es stellte sich raus, dass der dbus der Übertäter war.

Ich hab das Paket

xdg-dbus-proxy

deinstalliert.

Danach war alles OK.

Winni

petwey
Beiträge: 57
Registriert: Sa 24. Nov 2012, 19:00
OS, Lazarus, FPC: Windows10 und Linux 32 und 64Bit (L 2.2.2 FPC 3.2.2)
CPU-Target: 32Bit und 64Bit

Re: Lange Zeit zwischen FormCreate und FormActivate

Beitrag von petwey »

Hallo Winni,

Danke für den Tip, ABER bei mir trifft das leider nicht zu.

Nachdem ich xdg-dbus-proxy deinstalliert und neu gestartet habe, hat Lazarus das Programm wieder so gebaut, dass es zeitverzögert (32s) startet.

Da ich auch poedit verwende und diese xdg-dbus-proxy benötigt hab ich es wieder aufgespielt.
MfG,
petwey

Windows 10 und Linux 32 und 64Bit (L 2.2.2 FPC 3.2.2)

petwey
Beiträge: 57
Registriert: Sa 24. Nov 2012, 19:00
OS, Lazarus, FPC: Windows10 und Linux 32 und 64Bit (L 2.2.2 FPC 3.2.2)
CPU-Target: 32Bit und 64Bit

Re: Lange Zeit zwischen FormCreate und FormActivate

Beitrag von petwey »

Hallo Forum,

ich will nochmal zusammenfassen:
- Mit geringem Aufwand kann ich ein Programm erzeugen, das zw. FormCreate und FormActivate ca. 32s Zeit benötigt, bis es seine Oberfläche zeigt.
- Mit etwas mehr Aufwand, gelingt es mir ein Programm aus dem selben Source-Code zu erzeugen, das annähernd keine Zeit dafür benötigt.

Liegt da der Verdacht nicht Nahe, dass hier unterschiede beim Kompilieren und/oder Linken vorhanden sind. Ihr habt mir bis jetzt Tipps gegeben mit denen ich das Ergebnis untersuchen kann. Ich würde lieber mal die Entstehungsgeschichte untersuchen.
Und jetzt mein Ansatz:
- Langsames Programm erzeugen und dabei die Kompiler- und Link-Befehle mitprotokollieren, sowie die Ausgaben dieser Befehle.
- Dasselbe für das schnelle Programm machen.
Die Ausgaben vergleichen. Dabei müssten sich doch die Unterschiede / Ursachen herausfinden lassen.

Für mich ist der Charme von Lazarus jedoch, dass ich mich um das Kompilieren und Linken nicht kümmern muss. Anders ausgedrückt ich habe mir nie den Compilier- / Link-Befehl angeschaut und deren Ausgaben auch nur wenn ich kein fertiges Programm erhielt.

Also könnt ihr mir sagen, wie ich den eigentlichen
- Kompilier-Befehl zu gesicht bekomme
- Link-Befehl zu Gesicht bekomme
- die zugehörigen Ausgaben bekomme

Am besten wäre das in Datei-Form, damit ich diese Informationen miteinander vergleichen kann.

Damit sollte sich doch herausfinden lassen, was hier schief geht.
MfG,
petwey

Windows 10 und Linux 32 und 64Bit (L 2.2.2 FPC 3.2.2)

petwey
Beiträge: 57
Registriert: Sa 24. Nov 2012, 19:00
OS, Lazarus, FPC: Windows10 und Linux 32 und 64Bit (L 2.2.2 FPC 3.2.2)
CPU-Target: 32Bit und 64Bit

Re: Lange Zeit zwischen FormCreate und FormActivate

Beitrag von petwey »

Hallo Forum,

ich glaube die notwendigen Informationen eingesammelt zu haben, aber ich bräuchte Hilfe sie zu interpretieren.
Erstmal meine Vorgehensweise:
- Rechner herunterfahren, 20s stromlos, hochfahren
- Shell öffnen und Lazarus mit startlazarus öffnen
- Alle Shell-Ausgaben löschen
-Umstellen auf qt5 --> Shell-Ausgaben in File Schnell1.txt kopieren und kommentieren. Shell-Ausgabe löschen.
- Play-Button drücken --> Fehlermeldung abwarten. Shell-Ausgaben unten in Schnell1.txt einfügen und kommentieren. Shell-Ausgabe löschen.
- qt5 deaktivieren --> Shell-Ausgaben in File Schnell2.txt kopieren und kommentieren. Shell-Ausgabe löschen.
- Play-Taste drücken --> Schnelles Programm (Beenden mit Stopp-Taste). Shell-Ausgaben unten in Schnell2.txt einfügen und kommentieren.
- Jetzt brauch ich erst wieder einen Neustart wie oben
- Shell öffnen und Lazarus mit startlazarus öffnen
- Alle Shell-Ausgaben löschen
- Play-Taste drücken --> Langsames Programm (Beenden mit Stopp-Taste). Shell-Ausgaben unten in Langsam.txt einfügen und kommentieren.

Wenn ich Schnell2 und Langsam miteinander vergleiche, dann meine ich etliche Einträge noch mit qt5 zu finden, die nach dem Neustart des Rechner gtk2 heißen. Ich kann mich irren, aber wenn nicht wie kann das sein.

An der Stelle komme ich ins Schwimmen und brauche Unterstützung von Leuten, die sich hier gut auskennen.
Ich füge mal die Dateien Schnell1.txt, Schnell2.txt und Langsam.txt bei. Bitte beachtet unbedingt die Entstehung der Dateien.
Dateianhänge
Schnell2.txt
(20.24 KiB) 4-mal heruntergeladen
Schnell1.txt
(17.2 KiB) 2-mal heruntergeladen
Langsam.txt
(22.34 KiB) 8-mal heruntergeladen
MfG,
petwey

Windows 10 und Linux 32 und 64Bit (L 2.2.2 FPC 3.2.2)

petwey
Beiträge: 57
Registriert: Sa 24. Nov 2012, 19:00
OS, Lazarus, FPC: Windows10 und Linux 32 und 64Bit (L 2.2.2 FPC 3.2.2)
CPU-Target: 32Bit und 64Bit

Re: Lange Zeit zwischen FormCreate und FormActivate

Beitrag von petwey »

Hallo Forum,

ich muss nochmal einen Schritt zurückgehen, denn nach nochmaligem Überlegen kann es eigentlich auch nicht am Kompilieren und/oder Linken liegen. DENN wie ich schon gesagt habe, habe ich mehr als 10 Programme von Windows nach Linux portiert.
Sie sind alle von mir programmiert und sollten damit von der gleichen Machart sein, aber natürlich haben sie verschiedene Aufgaben. Sie besitzen also eine Reihe von Gemeinsamkeiten und etliches was sie für ihre spezielle Aufgabe brauchen. Alle diese Programme lassen sich wie gehabt mit der "Play"-Taste in Lazarus Kompilieren / Ausführen und starten schnell, außer einem, weshalb ich diesen Thread geöffnet habe! Bei allen habe ich nicht darauf geachtet ob gtk oder qt oder sonstiges verwendet wird, sondern einfach die Standardeinstellungen verwendet.
Daraus folgere ich, dass gtk nicht die Ursache des Problems ist. Ich vermute eher eine Komponente die ich speziell für dieses Programm verwendet habe oder eine Compiler-Einstellung, die ich nach all den Jahren nicht mehr nachvollziehen kann, oder etwas ähnliches, das diesen Fehler verursacht. Ja vielleicht in Zusammenhang mit gtk.
Vielleicht folgen wir diesem Hinweis mit gtk völlig unbegründet.

Sind euch irgendwelche Komponenten, Compiler-Einstellungen, sonstiges bekannt, die diese Effekte verursachen könnten.
Mein Programm stellt die Informationen für einen Kalibrierablauf zur Verfügung. Während der Kalibrierung werden die gewonnenen Daten an es zurückgeliefert und gespeichert. Anschließend werden die Daten ausgewertet und in Form von Tabellen - diese werden allerdings selbst auf den Canvas erzeugt und nicht mit irgendwelchen Grids erstellt - und in Graphen - hier wird TChart verwendet - dargestellt. Für die Berechnungen kommt noch ein erweiterter Expression Parser auf Basis von fpexprpars zum Einsatz.
Vielleicht gibt euch das Hinweise, zu verdächtigen Komponenten, etc.

Falls Euch was einfällt bitte melden.
MfG,
petwey

Windows 10 und Linux 32 und 64Bit (L 2.2.2 FPC 3.2.2)

Benutzeravatar
af0815
Lazarusforum e. V.
Beiträge: 5483
Registriert: So 7. Jan 2007, 10:20
OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
CPU-Target: 32Bit (64Bit)
Wohnort: Niederösterreich
Kontaktdaten:

Re: Lange Zeit zwischen FormCreate und FormActivate

Beitrag von af0815 »

Datenbanken und Internetconnections bei denen etwas automatisch gestartet wird fallen mir dazu ein.

Ich verwende für meine Programme folgenden Ansatz, es gibt nur ein Formular, das erzeugt alle anderen Formulare, Datenmodule und dynamischen Komponenten im ersten OnActivate und kümmert sich auch um das entsprechende Freigeben.

Dadurch kann ich auch jeden Schritt genau messen und sehe ob irgendwas aus dem Ruder läuft. Das geht zur not auch über den Code im lpr. Dort kann mir aber Lazarus dazwischenpfuschen. Aber zur Not kann man sich mit LazLogger und debuggeln da sehr gut helfen.
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).

wp_xyz
Beiträge: 4427
Registriert: Fr 8. Apr 2011, 09:01

Re: Lange Zeit zwischen FormCreate und FormActivate

Beitrag von wp_xyz »

Ich habe den Eindruck, dass du das Problem reproduzieren kannst. Das ist doch der ideale Ausgangspunkt fürs Debuggen. Schreibe an dem Beginn der für dich verdächtigen Prozeduren ein DebugLn('Beginn von Prozedur "xyz"), genauso ein DebugLn('Ende von Prozedur "xyz") am Ende. Aktiviere eine Konsole für die Ausgabe. Starte das Programm. Wenn die Wartezeit auftritt, siehst du welches DebugLn zuletzt abgearbeitet wurde. Wenn das "Ende von Prozedur xyz" fehlt, ist das Programm gerade in der Prozedur xyz. Oder in einer der von dort aufgerufen Unterroutinen - dann musst du die Suche weiter verfeinern und auch die in xyz aufgerufenen Prozeduren mit DebugLn versehen. Wenn das "Ende von Prozedur xyz" vorhanden ist, ist der Hänger in einer Prozedur die keine Markierung mit DebugLn erhalten hat, und du musst noch weitere Prozeduren aufnehmen.

[EDIT]
Ah, Andreas hatte eben so etwas Ähnliches geschrieben.

Benutzeravatar
Winni
Beiträge: 1423
Registriert: Mo 2. Mär 2009, 16:45
OS, Lazarus, FPC: Laz2.2.2, fpc 3.2.2
CPU-Target: 64Bit
Wohnort: Fast Dänemark

Re: Lange Zeit zwischen FormCreate und FormActivate

Beitrag von Winni »

Hi!

Nee, das ist eindeutig einer der zahlreichen gtk2 Bugs.

Wühlen in dunklen Erinnerungen und im Internationalen Forum ergab dies:

Gentlemen, I found it. I compared `env` between unity and openbox and found it. It is as simple as putting this:

export GTK_MODULES=gail:atk-bridge:appmenu-gtk-module

In ~/.profile. Now everything is fast.


aus:

https://forum.lazarus.freepascal.org/in ... msg374099

Der oben erwähnte dbus Bug ist aber auch für einige Systeme gültig.

Winni

petwey
Beiträge: 57
Registriert: Sa 24. Nov 2012, 19:00
OS, Lazarus, FPC: Windows10 und Linux 32 und 64Bit (L 2.2.2 FPC 3.2.2)
CPU-Target: 32Bit und 64Bit

Re: Lange Zeit zwischen FormCreate und FormActivate

Beitrag von petwey »

Hallo zusammen,

erstmal Danke für Eure Hinweise.

@af0815
Datenbanken und Internet-Connections hab ich nicht, aber ich benutze lNet. Aber lNet verwenden bei mir ein Großteil der Programme und die zeigen die Probleme nicht, damit fällt das weg.
Der Ansatz die anderen Formulare über OnActivate zu erzeugen, würde Sinn machen wenn ich den Effekt in mehreren Programmen sehen würde, das ist aber nicht der Fall.
LazLogger und debuggeln kenn ich noch nicht, das werde ich mir ansehen.

@wp_xyz
Ja richtig ich kann den Fehler und auch sagen wir mal ein besseres Verhalten reproduzieren, wobei ich glaube das bessere Verhalten ist einfach der Tatsache gezollt, dass beim Zurückstellen von qt5 auf nicht-qt5 meiner Meinung nach Lazarus nicht sauber zurückstellt (siehe im Vergleich die beiden Dateien Schnell2.txt und Langsam.txt). Ich habe zwar noch nicht mit LazLogger und debuggeln gearbeitet, aber mir mit einer Log-Ausgabe geholfen. Wirklich jede Routine (Event-Behandlung) im Hauptformular hat eine Logmeldung am Anfang ausgegeben. Schrittweises Debuggen durch die lpr hat auch kein Fehlverhalten gezeigt. Das was ich feststellen konnte ist ein ca. 32s Wartezeit zw. Ende von OnCreate und OnActivate. Ich weiß das Programm macht da was - meine Beiträge zuvor zeigen das ja auch - ABER ich weiß nicht wie ich einen Haltepunkt an eine mir unbekannte Stelle setzen soll. Das ist das Dilemma, sonst käme ich auch weiter.

@winni
Wenn das wirklich ein gtk2 bug ist, wie erklärst Du mir dann, dass meine anderen Programme nicht den selben Effekt zeigen?
Dein Hinweis mit der ./profile habe ich bereits weiter oben im Thread angesprochen. Das Problem hier liegt darin, das ich eine solche Datei nicht habe in die ich diesen Eintrag einfügen könnte. Sollte nicht bereits irgendein Programm-Paket eine solche Datei erzeugt haben? Nur allein eine Datei ./profile zu erzeugen hilft meiner meiner Meinung nicht, wenn es kein Programm gibt das sie benutzt.
Liege ich hier falsch? Der Beitrag den du anführst ist auch schon ein paar Jahre alt. Vielleicht muss den Eintrag wo anders reinschreiben. Mit env kenn ich mich nicht aus.

An alle:
Ich will dieses Problem wirklich aus der Welt schaffen. So wie es aussieht habe auch nur ich damit zu kämpfen und ich verstehe das es schwierig für Euch ist mir zu helfen, wenn ihr diese Problem nicht nachstellen könnt. Aber ich habe wirklich viel unternommen meine Ergebnisse hier zu posten. Bitte schaut Euch meine vorigen Beiträge nochmal an, denn ich habe das Gefühl, bereits schon einmal die Antworten auf Eure Hinweise gegeben zu haben. Bitte nicht einfach nur mal schnell antworten sondern meine Beiträge auch beachten.
MfG,
petwey

Windows 10 und Linux 32 und 64Bit (L 2.2.2 FPC 3.2.2)

Benutzeravatar
Winni
Beiträge: 1423
Registriert: Mo 2. Mär 2009, 16:45
OS, Lazarus, FPC: Laz2.2.2, fpc 3.2.2
CPU-Target: 64Bit
Wohnort: Fast Dänemark

Re: Lange Zeit zwischen FormCreate und FormActivate

Beitrag von Winni »

Hi!

Vor ca. 2 oder 3 Jahren häuften sich die gtk2 Bugs mit der Startverzögerung. In mehreren Fällen war auch ich betroffen.

Aus dem Kopf:

* Eine Ubuntu-Version funzte nicht. --> Update
* In mehreren Fällen gabs ein dbus-error mit 25 sec timeout. Siehe oben
* In manchen Distros waren die gtk-devel-Pakete nicht installiert --> nachinstallieren
* In Suse Tumbleweed fehlt ein gtk2-Paket --> nachinstalliert

Und sieh Dich mal im Internationalen Forum um. Da gibt es seitenweise Debatten zu dem Thema. Und manchmal auch Lösungen.

Winni

petwey
Beiträge: 57
Registriert: Sa 24. Nov 2012, 19:00
OS, Lazarus, FPC: Windows10 und Linux 32 und 64Bit (L 2.2.2 FPC 3.2.2)
CPU-Target: 32Bit und 64Bit

Re: Lange Zeit zwischen FormCreate und FormActivate

Beitrag von petwey »

Hallo winni,

Ich hab keine Ahnung wieso, aber ich hab die ~./profile nicht gefunden - sie war aber da!!
Hab den Eintrag unten angehängt, Neustart, mit env geguckt und GTK_MODULES=gail:atk-bridge:appmenu-gtk-module war darunter.
Danach hab ich Lazarus und dort mein Programm gestartet --> wieder die Wartepause.

Also erstmal Entschuldigung :oops: Ich weiß wirklich nicht wieso ich die Datei übersehen habe!
ABER geklappt hats noch nicht.

Ich probier jetzt deine anderen Hinweise durch, aber das Ubuntu ist schon auf dem neusten Stand....
MfG,
petwey

Windows 10 und Linux 32 und 64Bit (L 2.2.2 FPC 3.2.2)

petwey
Beiträge: 57
Registriert: Sa 24. Nov 2012, 19:00
OS, Lazarus, FPC: Windows10 und Linux 32 und 64Bit (L 2.2.2 FPC 3.2.2)
CPU-Target: 32Bit und 64Bit

Re: Lange Zeit zwischen FormCreate und FormActivate

Beitrag von petwey »

Hallo nochmal,

Ich gebs jetzt auf noch weiter mit GTK2 herumzuspielen! Das scheint mir verlorene Liebesmüh zu sein.
Ich habe bis jetzt den Schritt richtig zu QT5 vermieden, denn ich erhielt immer wieder Fehlermeldungen aus lNet. Dem bin ich jetzt auf den Grund gegangen und Dank Forum war es relativ einfach zu lösen.
Nach einem Neustart - denn einfach auf QT5 wechseln war immer noch zeitverzögert - hab ich jetzt ein schönes schnell startendes Programm.

Was störend ist, das das Aussehen meiner Anwendung sich geändert hat und ich etliche Anpassungen vornehmen muss. Aber das ist OK.

Die Frage, die jetzt wirklich relevant ist: Auf welches Widgetset sollte man denn in Zukunft setzen? Die Frage wurde hier bereits gestellt. GTK, egal welcher Version, scheint sich da schwer zu tun.
Was ist hier die richtige Wahl um in Zukunft gewappnet zu sein?

Bitte um fundierte Argumente.
MfG,
petwey

Windows 10 und Linux 32 und 64Bit (L 2.2.2 FPC 3.2.2)

Antworten