Beurteilung der Serverausstattung für JAVA Programm

internet

Top Contributor
Hallo,
ich habe einen Server aufgesetzt (Windows 2008 R2).
Ich habe eine JAVA - Applikation geschrieben.
Mit JSF 2.0, Spring, Hibernate und MySql:

Jetzt habe ich mal knapp 1600 Testdatensätze angelegt per CSV - Datei und diese in MySql geladen.
Die Testdatensätze sind Personen, die 7 Attribute haben (Email, Vorname etc.)
Diese Personen referenzieren Benutzer, Vorgesetzter und noch 5 weitere Tabellen.
Allerdings sind diese mit LAZY - Fetching deklariert.
Also können mitgeladen werden, müssen sie aber nicht.
Jetzt habe ich das Problem bzw. die Frage:

Ich gebe mir auf meiner JSF Seite die Datensätze aus.
Jetzt dauert es allerdings knapp 20 SEK, bis die Tabelle angezeigt wird.
Ist das normal?

Der Server hat folgende Komponenten:
- 3 GHZ CPU (Hyperthreading)
- 2 GB RAM

Ist das einfach viel zu wenig? Oder liegt das am eigentlichen Programm?
 

musiKk

Top Contributor
Gibt es passende Indexe auf die Tabellen? Bei 1600 Datensätzen sollte das zwar nicht viel ausmachen, aber wer weiß. Ansonsten sollte Profiling helfen, um herauszufinden, wo die Zeit verloren geht. Raten ist meistens nicht sinnvoll. Der Rechner wirkt gemessen an den beiden Kennzahlen nicht zu schwach, aber das lässt sich natürlich alles sehr schwer einschätzen - z. B. was läuft sonst noch oder wie ist die genaue Konfiguration.
 

internet

Top Contributor
Gibt es passende Indexe auf die Tabellen? Bei 1600 Datensätzen sollte das zwar nicht viel ausmachen, aber wer weiß. Ansonsten sollte Profiling helfen, um herauszufinden, wo die Zeit verloren geht. Raten ist meistens nicht sinnvoll. Der Rechner wirkt gemessen an den beiden Kennzahlen nicht zu schwach, aber das lässt sich natürlich alles sehr schwer einschätzen - z. B. was läuft sonst noch oder wie ist die genaue Konfiguration.

Hallo,
nein, Indexe gibt es m.E. nicht.
Wie implementiere ich das?
Ich habe es nach dem MVC - Pattern erstellt. Sprich Entity - Klassen....

Auf dem Server ist Windows Server 2008 R2.
Darauf laufen tut: Tomcat 6 & MySql....

Es ist für mich eigentlich die entscheidende Frage: liegt es an MIR (Code) oder am Server selbst.

was genau ist "Profiling"? Bzw. welche Tools (möglichst Open Source / freeware) gibt es ?
 
M

maki

Gast
Ich gebe mir auf meiner JSF Seite die Datensätze aus.
Jetzt dauert es allerdings knapp 20 SEK, bis die Tabelle angezeigt wird.
Alle 1600?
Dann sollte es doch egal sein wie lange das dauert, da es nie vorkommen dürfte (Stichwort: Paging).

Ein einfacher & kostenloser Profiler ist zB. VisualVM
 

internet

Top Contributor
was meinst du mit Paging?

Folgendes Szenario:

Ich rufe in meiner ManagedBean die Methode "findAlleKunden" im Anwendungskern auf.
Welche mir in einer <List> alle Kunden speichert als Objekt.

Diese Methode vom Anwendungskern ruft wiederum die Methode in der DB - Schicht "findAlleKunden"
Welche mir eben auch alle Kunden in einer Liste speichert mit der Datenbankabfrage:

Also die Select - Anweisung:
SQL:
Select * From Kunde


In meiner Oberfläche verwende ich Primefaces.
Wenn du "Paging" damit meinst, dass man zB nur 50 Objekte angezeigt bekommt: das habe ich so gemacht.
Ich gebe nicht auf der Seite komplett alle 1600 Datensätze aus.
Trotzdem hat es im Cache oder wie auch immer ja alle Datensätze - da ich so zB nicht auf der Oberfläche sortieren kann....
 
M

maki

Gast
Wenn du "Paging" damit meinst, dass man zB nur 50 Objekte angezeigt bekommt: das habe ich so gemacht.
Ja, meinte ich :)
Dann hilft wohl nur noch ein Profiler oder mehr paging... könnte st dir ja ansehen, wo die Zeit verbraten wird, zB. sind die ausgeführten SQL Statements auch sehr interessant dafür.
Abgesehen davon bietet Hibernate auch direkte Unterstüng für Paging, bei Queries kann man die firstResult & MaxResult setzen, wozu alle 1600 Entities erzeugen wenn nur 50 gebraucht werden?
 

internet

Top Contributor
Naja,
ich geb ja eine Liste aus, wo 1600 Einträge sind, allerlings eben immer nur 50 pro Seite.
Das heißt ich muss ja quasi doch alle 1600 Einträge in die Liste laden.
Ich habe auch eine Sortierfunktion bei der Tabelle... da muss ich doch alle 1600 Entities haben, oder nicht?

welchen Profiler kannst du mir empfehlen?
Kostenlos?
 

mvitz

Top Contributor
Nein, du musst nich immer alle 1600 laden, sondern für jede Seite 50. D.h. wenn jemand auf die erste Seite geht, lädst du nur die ersten 50, klickt er auf Seite 2 lädst du die zweiten 50 usw.

Wenn derjenige sortiert, dann fragst du halt die Datenbank erneut an (mit Sortierung im Query) und limitierst auch dieses Result auf 50 Einträge. Das sollte alles in allem performanter sein, als beim ersten mal alle 1600 Einträge zu laden.
 

internet

Top Contributor
naja und wie implementiere ich das?
Ich verwende Primefaces...
Das heißt wenn ich eine <List> ausgebe mit nur 50 Einträge, wie soll dann ein Paging hinzukommen?
Das kapiere ich nicht so ganz..
 

internet

Top Contributor
vielen Dank,
aber vllt kann man das auch durch das Caching von Hibernate umgehen?
Kennst du oder sonst jmd sich damit aus?
Bsp. EH-Cache?
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
O Ich Suche GTA 5 RP Server Scripter für atl:V Server einrichten und konfigurieren 0
S JVM Wartung und Optimierung für Sysadmins Server einrichten und konfigurieren 9
S Suche Apache Experte für Windows Server einrichten und konfigurieren 1
A Tomcat bekommt keine Schreibrechte für webapps Server einrichten und konfigurieren 6
TheJavaKid Cent OS für Java und MySQL konfigurieren Server einrichten und konfigurieren 21
schlingel Tomcat für den Produktiveinsatz Server einrichten und konfigurieren 14
NoXiD EJB 3.1 für JBoss 7 Server einrichten und konfigurieren 3
M minimalste Hardwareanforderungen für Jetty / Apache Archiva Server einrichten und konfigurieren 2
T App Server für Ubuntu gesucht Server einrichten und konfigurieren 9
M Hardwareempfehlung für TOMCAT Server Server einrichten und konfigurieren 8
V Keystore Type für Tomcat ändern Server einrichten und konfigurieren 2
M Tomcat oder sonstiger Webserver für mehrere Projekte Server einrichten und konfigurieren 5
D Tomcat für SSLv2 konfigurieren Server einrichten und konfigurieren 6
M Mehrere Webprojekte für Kunden <-> Mehrere Tomcats? Server einrichten und konfigurieren 7
R JBoss AS 5.1: --host-Parameter für Windows-Service Server einrichten und konfigurieren 1
R Spring Server für Spring-Framework notwendig? Server einrichten und konfigurieren 3
I Tomcat für Dummies Server einrichten und konfigurieren 2
H reservierter Speicher für Tomcat Server einrichten und konfigurieren 8
H JDK für Tomcat notwendig Server einrichten und konfigurieren 7
A richtige Pfadangabe für den Tomcat Server einrichten und konfigurieren 8
M Ant-Build für verschiedene Servlet-Container? Server einrichten und konfigurieren 5
B War-Datei für Tomcat. Pfadprobleme :( Server einrichten und konfigurieren 4
M Tomcat Umgebungsvariablen für JSP (CompilerError) Server einrichten und konfigurieren 5
M tomcat plugin für eclipse Server einrichten und konfigurieren 10
A Lucene für DB + Files? Server einrichten und konfigurieren 2
D commons db: schlankes framework für db-kommunikation unter j Server einrichten und konfigurieren 2

Ähnliche Java Themen

Neue Themen


Oben