Java Code optimierenten
-
Nen guten Abend alle zusammen,
ich hab ein programm geschrieben das sehr viele Datenbank Abfragen absetzt aus mehreren Tabs besteht usw...
Das ganze ist beim starten sehr Performancelastig!
Kennt jemand gute Seiten bzw. Tutorial oder sonstiges die sich mit dem Thema Code optimierung/Performancesteigerung usw. beschäftigen?
Oder habt ihr selbst Tips?
Freu mich über antworten...
Gruß
CeNoRiDeR
-
vielleicht hilft dir connection pooling zur Beschleunigung der Verbindungsaufbau und einloggen.
siehe dazu http://java.sun.com/developer/onlineTraining/Programming/JDCBook/conpool.htmlYoussef
-
Du musst "das Ganze" zunächst mal genauer spezifizieren. Das heißt nachmessen, was denn jetzt genau so lange dauert.
-
Profiler. f'`8k
Bye, TGGC
-
@Optimizer
Bin mir zu 99% sicher das es beim aufbauen der Datenbank Verbindungen ist!
beim Programmstart werden schätzungsweise 30 Datenbankverbindungen geöffnet, statements abgesetzt die resultsetzt in vectoren oder tabellen geladen und dann die verbindung wieder geschlossen.d.h. die Performanceprobleme müssten vom öffnen der Datenbankverbindungen kommen...
-
Arbeitest du mit Transactions?
-
CeNoRiDeR schrieb:
@Optimizer
Bin mir zu 99% sicher das es beim aufbauen der Datenbank Verbindungen ist!
beim Programmstart werden schätzungsweise 30 Datenbankverbindungen geöffnet, statements abgesetzt die resultsetzt in vectoren oder tabellen geladen und dann die verbindung wieder geschlossen.@TGGC|work: Soll er das nochmal profilen?
Hast du nen Connection Pool oder schließt du sie immer wieder vollständig und baust sie komplett neu auf? Wenn nein, dann verwende einen Connection Pool oder arbeite immer mit der gleichen Connection.
-
@Headhunter
nein@KennerDesTGGC
Momentan wird die Verbindung immer komplett geschlossen und neu Aufgebaut.
Werd das ganze mal mit Connection Pool umschreiben und schauen obs dann schneller startet...
-
CeNoRiDeR schrieb:
@Headhunter
nein
[..]Vielleicht helfen die dir weiter. Befehle, die du in Transactions einfasst, werden atomar ausgeführt. Also entweder klappt alles, oder gar nichts. Als Nebeneffekt werden DB Abfragen dadurch auch schneller.
Je nach DBMS kannst du dir auch serverseig anzeigen lassen, welche Abfragen wielange zum ausführen brauchen. So kannst zuverlässiges Profiling an der DB machen, halte ich für sinnvoller als jetzt erstmal blind alles neu zu machn.
Dennoch ist Connectionpooling natürlich immer eine gute Idee wenns schneller sein soll.
-
Beim Start deines Programms werden doch nur Abfragen gemacht, oder? Und wenn nichts geschreiben wird bringen Transaktionen wohl nix.
-
@Frager
jepp beim starten werden ausschließlich Abfragen gemacht!