Ich setze die sQLshell auch in dem Job ein, dem ich zum Zwecke des Bezahlens der Kuchen-Zutaten nachgehe. Auf den vom aktuellen Kunden gestellten Laptops hatte ich damit seltsame Performanceprobleme...
Es existieren in der sQLshell Actions, um sich den Inhalt oder die Struktur einer Tabelle anzusehen. Im Visuellen Abfrageeditor kann man Tabellen per Drag'n'Drop anordnen und visuell Joins zwischen ihnen definieren und Spalten für die zu generierende Abfrage selektieren. Alle diese Funktionalitäten waren auf dem Kundenlaptop unglaublich viel langsamer als anderswo.
Ich schob das zunächst auf eine langsamere Datenbank - denn dadurch unterschied sich natürlich der Kundenlaptop von meinen Testumgebungen. Und da ich die Performanceprobleme auch meist beim Zugriff auf Tabellenmetadaten wahrnahm, festigte sich dieser Verdacht - bis ich Messungen durchführte. Diese Messungen offenbarten, dass das Auslesen der Metadaten im Millisekundenbereich angesiedelt war - das Performanceproblem musste also andere Ursachen haben.
Nun muss ich vielleicht zunächst erklären, dass dieses nicht das einzige Performanceproblem an diesen Laptops ist - öffnet man den Windows-Dateiexplorer dauert es ewig, bis die Ansicht mit den Ordnern und Dateien bevölkert ist. Irgendetwas - sei es Virenjäger oder Cloudsynchronisation scheint sich da massivst auf die Performance des Dateisystems auszuwirken.
Aber da ich in der sQLshell an den betreffenden Stellen keine Dateisystemoperationen ausführte (wie ich damals noch annahm), checkte ich zunächst mal alle anderen möglichen Ursachen.
Nach langer, mühevoller Analyse stellte sich heraus, dass das Anlegen zweier Actions für die Toolbar mehrere Sekunden dauerte. Diese beiden Actions hatten gemein, dass sie von einer Basisklasse ableiteten, die Dateioperationen abbildete - und dazu unter anderem einen Dateiauswahldialog (JFileChooser) anbietet. Dieser wurde direkt bei der Konstruktion der Action instantiiert. Die beiden Actions waren ansonsten sehr schlank - im Konstruktor passierte nichts, und auch die Initialisierung der Klassenvariablen war nichts, das mehrere Sekunden dauern durfte. Also kommentierte ich testweise die Instantiierung des JFileChooser aus - und siehe da: die Performance auf dem Kundenlaptop war de gleiche wie auf meinen lokalen Testumgebungen.
Zusammenfassend kann man also sagenm, dass JFileChooser bereits bei der Instantiierung mit dem Dateisystem dergestalt interagiert, dass unter Windows mit der richtigen Kombination aus Cloudsynchronisierung und Virenschutz mehrere Sekunden vergehen können, bis der Vorgang abgeschlossen ist. Daher ist es besser (und die sQLshell ist inzwischen komplett dahingehend umgestellt) einen JFileChooser wirklich nur dann zu instantiieren, wenn er auch wirklich angezeigt werden soll!
Keycloak und LDAP
11.07.2021
Nachdem ich neulich bereits über die erfolgreiche Kopplung zwischen Keycloak und LDAP berichtete, bin ich noch einige Schritte weitergegangen...
WeiterlesenAI und ML Android Basteln C und C++ Chaos Datenbanken Docker dWb+ ESP Wifi Garten Geo Go GUI Hardware Java Jupyter JupyterBinder Komponenten Links Linux Markdown Markup Music Numerik OpenSource PKI-X.509-CA Präsentationen Python QBrowser Rants Raspi Revisited Security Software-Test sQLshell TeleGrafana Verschiedenes Video Virtualisierung Windows Upcoming...
Ich habe bereits vor einiger Zeit eine Möglichkeit präsentiert, SBOMs aus alten Java-Projekten zu erstellen. Ich bin neulich einer speziellen Form von Java-Projekten begegnet, die mich dazu bewogen hat, mich auch hierfür an der (nachträglichen) Erstellung einer SBOM zu versuchen...
WeiterlesenIch habe eine weitere Alternative zum Aufnehmen von Notizen in meinen Docker-Zoo aufgenommen
WeiterlesenIch habe wieder einmal im Urlaub grundlegende Architekturänderung in meinem Framework, das auch die Grundlage für die sQLshell und dWb+ darstellt vorgenommen.
WeiterlesenManche nennen es Blog, manche Web-Seite - ich schreibe hier hin und wieder über meine Erlebnisse, Rückschläge und Erleuchtungen bei meinen Hobbies.
Wer daran teilhaben und eventuell sogar davon profitieren möchte, muss damit leben, daß ich hin und wieder kleine Ausflüge in Bereiche mache, die nichts mit IT, Administration oder Softwareentwicklung zu tun haben.
Ich wünsche allen Lesern viel Spaß und hin und wieder einen kleinen AHA!-Effekt...
PS: Meine öffentlichen Codeberg-Repositories findet man hier.