PP wird immer langsamer

Problemstellung:

PP nutze ich seit vielen Jahren und pflege dieses Portfolio sehr akribisch. Es sind in dem Portfolio die Aktien (ca.- 230 Werte) aus 4 Depots gepflegt. Der Import erfolgt immer mit dem PDF-Importer von PP.

Es finden in diesem Portfolio ca. 3000 Buchungen pro Jahr statt. Es sind hauptsächlich Sparplanausführungen und Dividendenzahlung. Mir ist das klar, dass dieses sehr viele Buchungen sind. Die Portfolio Datei ist ca. 6,3MB groß und ich nutze das Binärformat.

Mein System ist zwar schon etwas älter aber läuft in anderen Programmen / Games recht gut.
Im System ist nur eine M2 SSD mit 1TB installiert. Das sollte also ok sein.

In der IOS APP geht jegliche Ansicht blitzschnell und ohne Verzögerung. Da brauche ich kein Messgerät oder irgendwelches Fachwissen.

In der PortfolioPerformance.ini habe ich folgende Einstellungen:

-startup

plugins/org.eclipse.equinox.launcher_1.6.600.v20231106-1826.jar

--launcher.library

plugins/org.eclipse.equinox.launcher.win32.win32.x86_64_1.2.800.v20231003-1442

-vm

plugins/name.abuchen.zulu.jre.win32.x86_64_17.0.5/jre/bin

-vmargs

-XX:+IgnoreUnrecognizedVMOptions

--add-modules=ALL-SYSTEM

--illegal-access=permit

-XX:+UseG1GC

-XX:+UseStringDeduplication

-Xms4096m

-Xmx12288m

-Xss512k

Ich habe mal ein Video mal ein Video hochgeladen. In der Performanceübersicht habe ich etwas verpixelt, man sollte aber sehen das es eine Minute dauert, bis ich überhaupt was machen kann.

Für Ideen die Performance zu verbessern bin ich offen!

Gruß Alex


Super… genau wie ich es mir dachte.

Also damit ich mal dein Post vom April 2020 mitnehme:

Danke für Ihre Übersicht:
Sie betreiben also einen 10 Jahren alten PC mit Windows 11.

Rechnen wir mal… 2020 bis heute… sind also circa 10000 Buchungen inkl. den ganzen anderen Krempel… in einem Binärformat mit 6,3 MB.
Da ich Sie aber bereits 2020 seit mehreren Jahren dies nutzen, sind natürlich mehr Buchungen vorhanden. Vermutlich so circa 25000. (rein geschätzt)

CPU:
Xeon E3-1231 V3 <— 10 Jahre alt. (Abgekündigt seit Wednesday, June 30, 2021)
Um das auch mal in Zahlen zu untermauern.
Ryzen 7 7800X3D übertrifft Xeon E3-1231 v3 um satte 388%, basierend auf Benchmark-Ergebnissen. Die Architektur der CPU und mathematische Rechenleistung von Threats etc. ist eben “Altbacken”.

Eine Erhöhung um 100 % heißt, verdoppeln.
Bei 388% sind das… Tommelwirbel ???

Zu einer Top Aktuellen CPU (Stand 06/2024)
Ryzen 9 7900X3D übertrifft Xeon E3-1231 v3 um satte 616%, basierend auf Benchmark-Ergebnissen.

Speicher (RAM):
DDR3 <— Wir sind mittlerweile bei DDR5 und gehen bald auf DDR6

16GB RAM… selbst eine Erhöhung würde bei diesem System nix mehr bringen.
Um auch hier Daten + Fakten zu liefern…
Übertragungsrate (GB/s) → DDR3 → 8,5–14,9
Übertragungsrate (GB/s) → DDR5 → 38,4–51,2
Egal… der RAM wird nicht sein… Ihre SSD ist übrigens in der Datenverarbeitung schneller als Ihr RAM… :wink:

Jap, Laie eben… daher ist das eine auch in Java programmiert (Desktop-Version) und das andere eben nicht. Aber es könnte auch die 6,3 MB Datei Binärdatei sein mit einem 10 Jahren Xeon CPU.

Hier nochmal ein Hinweis… die beiden Programme haben zwar dieselbe Datei sind aber “völlig” anders programmiert. Die eine kann z. B. nur “Lesen und Filtern”, die andere kann zusätzlich Daten manipulieren und eben alle anderen Funktionen. Egal… :white_check_mark:

Es könnte, aber da wage ich mich weit aus dem Fenster… auch der Unterschied sein, dass ein IPhone12 Pro mit einem A14 Bionic CPU (in der 14ten Generation) in der Entwicklung weiter vorn ist. Siehe diesem Vergleich → A14 Bionic vs. Xeon E3-1231 V3 ← oder auch an dem B-Core, welche mathematisch unterstützt… :thinking: :wink:

Könnten Sie diese Datei bitte einmal in XML abspeichern?
Mich würde das Komprimierungsverhältnis interessieren.
Müssten so circa 71 MByte sein.

Mich würde auch mal interessieren, wenn Sie ein Wertpapierchart öffnen und mit dem “Messtool” arbeiten, ob es da sehr ruckelt wenn Sie mir der Maus die Messpunkte setzen, aber ich denke da wird es auch hakeln.

Abschließend hau ich mal die Vermutung raus… Ihr Handy, IPhone12 Pro, ist besser als Ihr PC… und es liegt nicht an Portfolio Performance… aber …

Ergo und summa sumarum… Das Hauptproblem Ihrer Performance mit PP ist ihre in die Jahre gekommener PC.

Ich hoffe ich konnte Ihnen verdeutlichen, dass Ihre Aussagen leider inkonsistent und nicht haltbar sind. Ihr Wissen über die Architektur von PP wurde erweitert: Sie verstehen nun, dass die App nicht in derselben Programmiersprache wie die Desktop-Version programmiert ist und dass für mathematische Berechnungen eine leistungsfähige CPU wichtig ist.

Dank der nun vorliegenden Informationen, welche zuvor nicht vorhanden waren, konnten wir erfolgreich Ihr Problem lösen. Aber erstmal “den Beitrag” bei den Admins melden… “Mimimimimi”…
Das ist doch ein Erfolg auf der ganzen Linie, oder?

1 Like

Sicherlich wird der PC ein gewissen Anteil an der schlechten Performance haben, jedoch würde ich nicht automatisch vermuten, dass es mit einem neuen PC schneller wird. Da machen wir es uns zu einfach…

Der PC funktioniert sehr gut, die CPU ist eine Workstation-CPU. Ich kann zum Beispiel auch aktuelle Spiele wie “Last of us” mit fast 80FPS spielen.

Ich werde morgen im Büro PP auf meinem CAD PC austesten. Der ist relativ aktuell und hat viel Power und RAM. Dann wird man sehen können was neuere Hardware bringt.

Die Binärdatei als XML ist 64MB groß. Der meiste Inhalt sind historische Kurse, die werde ich im nächsten Schritt mal ausmisten.

Auf das Thema der unterschiedlichen Programmiersprachen und Plattformen habe ich ehrlich gesagt keine Lust. Das bringt uns hier nicht weiter.

Gruß
Alex

Offtopic:
Keine Ahnung warum die immer diese Schärfe und Ironie hier in den Antwort hast? Wenn ich den Admin verlinke und dort eine Frage an diesen richte, hat das nichts mit melden zu oder Mimimi zu tun.

Hallo,

es ist wichtig, zwischen dem Start von PP und der Nutzung zu differenzieren.
Der Start (ohne Datei) dauert bei mir 8s. Und ich finde das zu viel.
Ich weiß, dass PP in Java geschrieben ist.
Es ist aber nicht der Start der JRE. Ich habe gerade mein erstes Java Programm gestartet und mein Hello-World startet in Millisekunden.
(Ich weiß, dass es nicht nur das JRE ist, welches bei Java-Programmen für schlechtere Performance sorgt; aber das haben wir schonmal ausgeschlossen).

Wie lange braucht das der Start (ohne Datei) bei Euch?

Das System ist ein Zenbook UM5302TA (ASUSTeK COMPUTER INC. Zenbook UM5302TA_UM5302TA - Geekbench)

Gruß,
Hendrik

1 Sekunde auf einem Mac Mini 2018. Aber ich verstehe nicht was das bringen soll.

Wenn es keine konkreten Vorschläge zur Verbesserung gibt ist alles andere Makulatur.
Der Kern von PP ist 12 Jahre alt und auf Buy and Hold angelegt, das ist erst einmal ein unumstößlicher Fakt.

Viele Grüße

1 Like

Hi @henfri

Ohne Datei dauert es bei mir 3 Sekunden und mit Datei (Binär 1,7MB) zwischen 4 und 5 Sekunden.

System ist bei mir nicht das Neuste (AMD 5700X, AM4 B350 ITX Board, 32 GiB @ 3200 MHz und nur normale SATA SSD). Nutze hauptsächlich Win 11, aber auch Linux Mint und Ubuntu. Unter Linux ist es noch einen Tick flotter als mit Windows.

Mein Start ohne Datei ist ca. 2 Sekunden.

1 Sekunde auf einem Mac Mini 2018. Aber ich verstehe nicht was das bringen soll.

Wenn es keine konkreten Vorschläge zur Verbesserung gibt ist alles andere Makulatur.
Der Kern von PP ist 12 Jahre alt und auf Buy and Hold angelegt, das ist erst einmal ein unumstößlicher Fakt.

Naja, das zeigt ja erstmal, dass der Start schnell genug sein kann.
Wenn es bei einigen 1,2,3s dauert und bei mir 8 - obwohl mein System sicher nicht langsamer als besagter Mac ist.

Jetzt wäre die Frage, woher die Unterschiede kommen.

Offensichtlich ist er in der Konstellation langsamer. Daher nutzen solche Vergleiche auch nichts, so lange man nicht über coding und Architektur desselben spricht.

Viele Grüße!

Na da kann man natürlich nix machen

Wenn du wirklich zehntausende Buchungen hast, wundert Langsamkeit mich überhaupt nicht.

Nimm mal eine grafische Oberfläche mit dem ganzen Eclipse-Unterbau, der u.a. nötig ist, um denselben Code unter Windows, MacOS und Linux laufen zu lassen …

1 Like

Update 1 vom 13.06.2024:

Ich konnte gestern im Büro meine PP Datei auf dem Laptop (i7-9850H mit 64GB RAM und SSD) testen. Dort lief es zwar etwas besser, aber es war immer noch sehr träge und langsam. Daher bleibe ich bei meiner Vermutung, dass es eher an PP und der großen Anzahl der Buchungen liegen muss.

Ich habe daher nun angefangen, mein PP von Grund auf neu aufzusetzen und den Speed zu erhöhen. Folgende Dinge habe ich aktuell schon gefunden:

  • Neueste PP Version 0.69.0 installiert
  • XML-Datei ausmisten:
    Bei allen inaktiven Wertpapieren die Logos und historischen Kurse gelöscht. Kurse aus den Buchungen erzeugt. Teilweise waren die Kurse ab 2010 hinterlegt.
  • XML-Datei ausmisten:
    Bei allen inaktiven Wertpapieren die Logos die Kurslieferanten entfernt, um einen erneuten Download zu verhindern.
  • XML-Datei ausmisten:
    Alle Kurslieferanten auf Yahoo Finance umgestellt. Bei einigen Wertpapieren wurde Webadressen geparst und die Kursaktualisierung lief oft unrund. Mittlerweile habe ich die passenden Symbole bei Yahoo Finance gefunden.

Die XML- ist aktuell von 6,3MB auf 5,5MB geschrumpft. Ich werde die jetzt Anfangen die aktiven Wertpapiere zu entschlacken:

Ich habe mir ein Python-Skript mit Chat GPT programmiert, welches mir aus den historischen Kursen 70% der Kurse rauslöscht. mit der Zahl muss ich noch etwas spielen, um ein aussagekräftiges Kursdiagramm beizubehalten.

Ich werde weiter berichten…

Offtopic: Ich würde es begrüßen, wenn die Daten irgendwann mal in eine MYSQL-Tabelle und nicht in einer XML landen würden. Bei mir scheint das System an seine Grenz zu stoßen.

Es gibt doch jetzt schon das Binärformat.

3 Likes

Wenn, dann HyperSQL oder andere in-Memory-DBs.

Performanceprobleme schon mit dem Start der Applikation klingt nach einem langsamen IO von der Platte. Bei einer Workstation würde mich das aber wundern, wenn das bisher noch nicht aufgefallen sein soll. Weiters ist bei so was gerne ein Virenscanner involviert, der bei jedem Start sämtliche Jars der Installation auf Schädlichkeit zu prüfen meint. Das lässt sich herausfinden, indem man den Virenscanner einmal vorübergehend deaktiviert. Wenn das einen positiven Einfluß auf die Geschwindigkeit hat, kannst du ja überlegen, ob das Ausschleßen des Installationsverzeichnisses beim Virenscanner eine Option ist.

Was die Trägheit im Betrieb angeht, wäre eine Möglichkeit mittels eines Profilers mal auf das System zu schauen, während es vor sich hinschnauft. Problem ist nur, dass ein Entwickler hierfür deine PP-Datei bräuchte und ich gehe davon aus, dass das nichts ist, was du machen würdest :wink: Auch hier könnte übrigens ein Virenscanner das Problem sein, da die ja inzwischen jeden Sch… prüfen, nur um ihre Existenzberechtigung zu zeigen.

Eventuell nutzt du viele Widgets oder Spalten in der Vermögensübersicht. Die derzeitige Implementierung, wie die jeweiligen Werte ermittelt werden, ist schwer verbesserungswürdig. Das wäre aber eben etwas, das man mittels Profiler prüfen müsste.

Dass hier Java verwendet wird, hat übrigens nichts mit den Performanceproblemen zu tun. Aber es stimmt, dass ein Vergleich mit Edge oder Word wenig sinnvoll ist. Windows lädt beim Systemstart beides schon mal in den Speicher, noch bevor - oder überhaupt - man etwas davon verwendet. Da alles schon da ist, ist ein Start davon dann natürlich rasend schnell.

1 Like

Update 2:

Ich habe nun die historischen Kurse von allen Wertpapieren bereinigt und die PP-Datei von 6,3MB auf 3,5MB reduziert. Die unkomprimierte XML ist “nur” noch 43MB groß. Es lauft gefühlt etwas flüssiger, aber der große Durchbruch ist es noch nicht gewesen. Trotzdem bin ich froh, diese riesige Datenmenge reduziert zu haben.

Den Tipp mit dem Virenscanner habe ich getestet: PP startet minimal schneller aber im Programm selbst sehe ich keinen Unterschied.

Als nächstes muss ich mein Windows mal neu installieren. Das schiebe ich seit bestimmt 2-3 Jahre vor mir her und bin nie dazu gekommen.

Gruß Alex

Ich hatte oben schon einmal angeboten die PP-Datei zur Verfügung zu stellen.
Bis jetzt wollte die niemand haben… ich hätte jedenfalls kein Problem damit.

Das Hauptproblem sind für mich die Widgets in der Performanceübersicht. Das baut sich am langsamsten auf. Mit dem Rest kann ich prima leben.

Gruß Alex

Das Angebot ging irgendwie an mir vorbei, wobei ich das Forum hier auch nicht sooo im Detail verfolge :wink: Du kannst mir die gerne mal schicken, ich kann aber keine schnellen Ergebnisse versprechen.

Das habe ich schon vermutet. Wie gesagt ist die Implementierung an der Stelle schwer verbesserungswürdig. Eine Verbesserung würde aber ein paar grundlegende Umstellungen erforderlich machen, wie die Daten gehalten und für Berechnungen herangezogen werden. Momentan geht jedes Widget durch die ganzen Buchungen durch, filtert die für sich relevanten solchen heraus, um dann zu berechnen, was es zu berechnen gilt. Je mehr Widgets, umso öfter wird da durch den Datenbestand durchgegrast, einzelne Widgets - sofern ich das richtig in Erinnerung habe - gehen den Datenbestand sogar mehrfach durch.

Prüf doch mal im Taskmanager, wie viel Speicher die Applikation zur Laufzeit nutzt. Auch wenn der tatsächliche Speicherbedarf dank eigenem Memorymanagement der VM davon abweicht, wäre es ein Indiz für “ausgehenden” Speicher, wenn der Verbrauch die ganze Zeit nah am Maximum dessen stattfindet, was im Startskript eingestellt ist. In so einem Fall wäre die VM dauerhaft damit beschäftigt, Speicher umzuorganisieren, was sich massiv negativ auf die Performance einer Applikation auswirkt. In so einem Fall würde nur das Erweitern des Speichers helfen, oder man wartet, bis sich jemand hingesetzt und die Applikation hinsichtlich Speicherverbrauch optimiert hat.

Für letzteres wäre es tatsächlich mal einer Überlegung wert, die Datenhaltung von XML, das komplett in den Speicher geschraubt werden muss, auf eine dateibasierte DB umzustellen (sqlite, HyperSQL, Derby, you name it). Auch hier: Das ist ein größerer Aufwand und würde entsprechend Zeit brauchen, die man erst mal haben muss.

Wenn du mir deine Email gibt (per PN) dann schicke ich dir gerne die Datei mal zu. Würde dann vorab ein paar sensible Daten rausnehmen…

Ich habe folgende Werte in der PP.ini eingetragen. Der xss ist gerade auf 2MB erweiter um zu schauen ob es was bringt. Ich habe noch keine Änderung festellen lassen.


-startup
plugins/org.eclipse.equinox.launcher_1.6.600.v20231106-1826.jar
--launcher.library
plugins/org.eclipse.equinox.launcher.win32.win32.x86_64_1.2.800.v20231003-1442
-vm
plugins/name.abuchen.zulu.jre.win32.x86_64_17.0.5/jre/bin
-vmargs
-XX:+IgnoreUnrecognizedVMOptions
--add-modules=ALL-SYSTEM
--illegal-access=permit
-XX:+UseG1GC
-XX:+UseStringDeduplication
-Xms4096m
-Xmx12288m
-Xss2048k

Ich habe jetzt angefangen mal einige Programme aus dem System zu deinstallieren. Ich hatte immer Open Shell für das “alte” Startmenü und Taskleiste. Nach der Deinstallation fühlt sich der allgemeine Workflow flüssiger an und auch PP scheint etwas runder zu laufen.

Mach ich gerne, sehe nur nicht, wie ich das bei PP machen kann.

Wie könnte eine solche Verbesserung aussehen? Vielleicht kann eine Funktion einmal durch die Daten durchgehen und alle Berechnungen durchführen die die Widgets alle anbieten und dann kann jedes aktive Widget sich von diesen vorberechneten Daten bedienen und muss nicht selbst durch den Datenbestand gehen.