BITTE helfen Sie uns HEUTE mit einer SPENDE
Helfen Sie das OpenOffice Forum zu erhalten!
> KEINE WERBUNG FÜR REGISTRIERTE BENUTZER!<
Ihre Spende wird für die Deckung der laufenden Kosten sowie den Erhalt und Ausbau 🌱 des OpenOffice Forums verwendet.
🤗 Als Dankeschön werden Sie im Forum als OO-SUPPORTER gekennzeichnet. 🤗
Basic Dialog frisst Speicher
Basic Dialog frisst Speicher
hallo Community,
ich habe eine Mitgliederverwaltung mit AOO 4.1.3 in Basic für meinen Verein entwickelt. Die Anwendung startet mit einem Haupt-Dialog der nach Instanzierung ein Calc-Doc (mit derzeit 10 sheets) lädt wo die ganzen Daten gespeichert sind (ich will absichtlich keine Datenbank). Läuft auch soweit bestens, nur habe ich jetzt bei einem Intensiv-Test festgestellt, daß schon beim einfachen vorwärts-blättern zum nächsten Mitglied die Speicherbelegung rapide hoch geht. Bei derzeit 500 Test-Mitgliedern kann ich das doc ca. 1,5 mal durchblättern, dann ist mein Speicher bei ca. 2.7 GB belegt und unter Windows 7 verabschiedet sich OO einfach lautlos. Unter Ubuntu 16.04 laufen die gleichen Macros und hier kommt es dann zum System-freeze (logisch). Ich habe einen Laptop mit 3 GB RAM auf dem ich Win 7 und Ubuntu 16.04 installiert habe.
Ich weiß, das ist ein extrem-Test, aber es sieht für mich so aus, als ob OO nicht mehr benötigte Objekte nicht aufräumt, bzw. Dialog-Objekte immer wieder neu anlegt, und sich deshalb hochschaukelt (reine Vermutung!)
Da die Anwendung später auf einem kleineren Laptop mit max 2GB RAM unter Ubuntu laufen soll möchte ich das Problem gerne irgendwie lösen wenn es denn möglich ist. Die OO-Einstellungen zu ändern hat nicht geholfen. Selbst bei vorzeitigem Beenden der Anwendung bleibt die bis dahin erreichte Speicherbelegung erhalten und geht erst zurück wenn ich den noch laufenden soffice Prozess beende.
Weiß hierzu jemand einen Rat? Muß ich vielleicht in der JVM eine Einstellung vornehmen - hier habe ich seit Installation von jre 8 nichts verändert.
Vielen Danke im Voraus für jeglichen Tipp,
mfG, CoDude
ich habe eine Mitgliederverwaltung mit AOO 4.1.3 in Basic für meinen Verein entwickelt. Die Anwendung startet mit einem Haupt-Dialog der nach Instanzierung ein Calc-Doc (mit derzeit 10 sheets) lädt wo die ganzen Daten gespeichert sind (ich will absichtlich keine Datenbank). Läuft auch soweit bestens, nur habe ich jetzt bei einem Intensiv-Test festgestellt, daß schon beim einfachen vorwärts-blättern zum nächsten Mitglied die Speicherbelegung rapide hoch geht. Bei derzeit 500 Test-Mitgliedern kann ich das doc ca. 1,5 mal durchblättern, dann ist mein Speicher bei ca. 2.7 GB belegt und unter Windows 7 verabschiedet sich OO einfach lautlos. Unter Ubuntu 16.04 laufen die gleichen Macros und hier kommt es dann zum System-freeze (logisch). Ich habe einen Laptop mit 3 GB RAM auf dem ich Win 7 und Ubuntu 16.04 installiert habe.
Ich weiß, das ist ein extrem-Test, aber es sieht für mich so aus, als ob OO nicht mehr benötigte Objekte nicht aufräumt, bzw. Dialog-Objekte immer wieder neu anlegt, und sich deshalb hochschaukelt (reine Vermutung!)
Da die Anwendung später auf einem kleineren Laptop mit max 2GB RAM unter Ubuntu laufen soll möchte ich das Problem gerne irgendwie lösen wenn es denn möglich ist. Die OO-Einstellungen zu ändern hat nicht geholfen. Selbst bei vorzeitigem Beenden der Anwendung bleibt die bis dahin erreichte Speicherbelegung erhalten und geht erst zurück wenn ich den noch laufenden soffice Prozess beende.
Weiß hierzu jemand einen Rat? Muß ich vielleicht in der JVM eine Einstellung vornehmen - hier habe ich seit Installation von jre 8 nichts verändert.
Vielen Danke im Voraus für jeglichen Tipp,
mfG, CoDude
Re: Basic Dialog frisst Speicher
Moin,
schreibe ans Ende der Routine die den Dialog oDialog aufruft:Gruß R
schreibe ans Ende der Routine die den Dialog oDialog aufruft:
Code: Alles auswählen
oDialog.dispose
Windows 10: AOO, LO Linux Mint: AOO, LO
Re: Basic Dialog frisst Speicher
hallo F3K Total,
tausend Dank erstmal für die schnelle Antwort! hab's gleich eingebaut und getestet und jetzt gibt soffice den Speicher wenigstens frei wenn ich meine Anwendung beende! Am grundsätzlichen Problem des "aufschaukelns" ändert das natürlich leider nichts. Dazu müßte es vielleicht eine Art "Cleanup" oder "Reset" API geben.
Trotzdem wenigstens ein Teilerfolg!
Danke und Gruß,
CoDude
tausend Dank erstmal für die schnelle Antwort! hab's gleich eingebaut und getestet und jetzt gibt soffice den Speicher wenigstens frei wenn ich meine Anwendung beende! Am grundsätzlichen Problem des "aufschaukelns" ändert das natürlich leider nichts. Dazu müßte es vielleicht eine Art "Cleanup" oder "Reset" API geben.
Trotzdem wenigstens ein Teilerfolg!
Danke und Gruß,
CoDude
Re: Basic Dialog frisst Speicher
Hallo,
Werden aus dem Hauptdialog (wie ich mal vermute) weitere Unterdialoge aufgerufen (die dann eventuell in mehreren Instanzen im Speicher herumliegen)?
Dazu müsste man mal einen genaueren Blick auf die Arbeitsweise deiner Makros werfen. Wie passiert das "vorwärts-blättern" und was wird dabei alles gemacht (Mitgliedsdaten in Dialogfelder schreiben??? ...)als ob OO nicht mehr benötigte Objekte nicht aufräumt, bzw. Dialog-Objekte immer wieder neu anlegt
Werden aus dem Hauptdialog (wie ich mal vermute) weitere Unterdialoge aufgerufen (die dann eventuell in mehreren Instanzen im Speicher herumliegen)?
Gruß,
mikele
mikele
Re: Basic Dialog frisst Speicher
Hallo
Karolus
Dann musst du auch damit leben das deine "selbstgebastelte" Superlösung bei 500 "Datensätzen" zusammenbricht.ich will absichtlich keine Datenbank
Karolus
Re: Basic Dialog frisst Speicher
Hallo CoDude,
Nein nein! Ich unterstelle dir absolut nix, das liegt mir Fern.
Aber da wir nix über deine Datei wissen, da wir sie nicht sehen, will ich dir das mal so rum erklären.
Also falls Du Daten aus irgendeiner Web-Seite in Calc reinkopierst, kann es durchaus passieren das unerwünschter Inhalt mit reinkopiert wird. Dieser Inhalt ist wohl kein Virus oder sonstiges Systemschädliches, aber er kann durchaus das System bremsen.
Der unerwünschte Inhalt kann z.B. irgendein Platzhalter für ein nicht sofort und direkt sichtbares "Bildchen" sein, das durch eine Internetadresse nachgeladen werden will. Dabei spielt die Größe des Bildes absolut keine Rolle, es reicht aus wenn es theoretisch 2 mal 2 Pixel groß ist. Die Hauptrolle in diesem Spektakel spielt nämlich die Internetadresse selbst, da Calc nämlich versucht das "Bildchen" nachzuladen. Auch wenn keine Verbindung zu dieser Adresse besteht, so versucht Calc trotzdem eine Verbindung zu dieser Adresse aufzubauen um das "Bildchen" nachzuladen und das ist eine Aktion wo Calc echte Schwerstarbeit leistet.
Und je mehr solche versteckten Internetadressen pro Blatt existieren, um so länger kann der wechsel von einem Tabellenblat zum anderen dauern. In einem anderen Forum hatten wir mal genau diese Situation. Und da dauerte der Blattwechsel duchaus mehrere Minuten, ich glaube es waren so um die 5 minuten.
Das kannst Du aber schon mal selber gegentesten ob dies bei dir der Fall ist. Ruf einfach den Navigator auf (F5). Und wenn Du dort etwas siehst was da nicht reingehört, a-la
dann dürfte das höchstwahrscheinlich dein Übeltäter sein.
Gruß
balu
Ich glaube nicht das dies was mit deinem Dialog zu tun hat, sondern ehern viel mehr damit das jedes Tabellenblatt höchstwahrscheinlich mit irgendeinem Datenmüll vollgestopft ist.Läuft auch soweit bestens, nur habe ich jetzt bei einem Intensiv-Test festgestellt, daß schon beim einfachen vorwärts-blättern zum nächsten Mitglied die Speicherbelegung rapide hoch geht. Bei derzeit 500 Test-Mitgliedern kann ich das doc ca. 1,5 mal durchblättern, dann ist mein Speicher bei ca. 2.7 GB belegt und unter Windows 7 verabschiedet sich OO einfach lautlos.
Nein nein! Ich unterstelle dir absolut nix, das liegt mir Fern.
Aber da wir nix über deine Datei wissen, da wir sie nicht sehen, will ich dir das mal so rum erklären.
Also falls Du Daten aus irgendeiner Web-Seite in Calc reinkopierst, kann es durchaus passieren das unerwünschter Inhalt mit reinkopiert wird. Dieser Inhalt ist wohl kein Virus oder sonstiges Systemschädliches, aber er kann durchaus das System bremsen.
Der unerwünschte Inhalt kann z.B. irgendein Platzhalter für ein nicht sofort und direkt sichtbares "Bildchen" sein, das durch eine Internetadresse nachgeladen werden will. Dabei spielt die Größe des Bildes absolut keine Rolle, es reicht aus wenn es theoretisch 2 mal 2 Pixel groß ist. Die Hauptrolle in diesem Spektakel spielt nämlich die Internetadresse selbst, da Calc nämlich versucht das "Bildchen" nachzuladen. Auch wenn keine Verbindung zu dieser Adresse besteht, so versucht Calc trotzdem eine Verbindung zu dieser Adresse aufzubauen um das "Bildchen" nachzuladen und das ist eine Aktion wo Calc echte Schwerstarbeit leistet.
Und je mehr solche versteckten Internetadressen pro Blatt existieren, um so länger kann der wechsel von einem Tabellenblat zum anderen dauern. In einem anderen Forum hatten wir mal genau diese Situation. Und da dauerte der Blattwechsel duchaus mehrere Minuten, ich glaube es waren so um die 5 minuten.
Das kannst Du aber schon mal selber gegentesten ob dies bei dir der Fall ist. Ruf einfach den Navigator auf (F5). Und wenn Du dort etwas siehst was da nicht reingehört, a-la
Code: Alles auswählen
http://www......
Gruß
balu