T
TangoFan
Gast
Hallo mal wieder, hab nun eine Design/Performance Frage. Und zwar habe ich ein Servlet welches eingehende Requests verarbeiten soll. Dabei wird in der "doGet"-Methode, eine Methode einer anderen Klasse (nenne ich hier mal "Factory") aufgerufen, der Request als Parameter übergeben und dort ausgewertet und anschliesend ein Integer zurückgeliefert.
Nun möchte ich das ganze so performant wie möglich machen da ja ein Servlet mehrere Threads gleichzeitig verarbeitet und somit diese Factory dies ebenfalls tun soll. Soll ich diese "Factory" nun als Singleton implementieren oder die Methoden einfach nur alle "static" machen, oder... ? Meine Grundidee ist halt diese das wenn die JVM nicht ständig neue Factory-Klassen anlegen muss sondern immer nur die schon vorhandene Methode aufruft, man dadurch Zeit einspart.
Bisher ist der Code so:
Idee 1:
Idee 2:
Jemand ne Idee was nun "schneller" sein könnte?
Nun möchte ich das ganze so performant wie möglich machen da ja ein Servlet mehrere Threads gleichzeitig verarbeitet und somit diese Factory dies ebenfalls tun soll. Soll ich diese "Factory" nun als Singleton implementieren oder die Methoden einfach nur alle "static" machen, oder... ? Meine Grundidee ist halt diese das wenn die JVM nicht ständig neue Factory-Klassen anlegen muss sondern immer nur die schon vorhandene Methode aufruft, man dadurch Zeit einspart.
Bisher ist der Code so:
Code:
class Test extends javax.servlet.http.HttpServlet..... {
...
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
int berechnet;
// leite weiter an die Methode der anderen Klasse, welche den Request nun auswertet
Factory fac = new Factory(); // <-- hier irgendwie Zeit einsparen
berechnet = fac.tueAuswerten (request);
}
Idee 1:
Code:
class Test extends javax.servlet.http.HttpServlet..... {
private Factory fac = new Factory(); // <-- bringt das Zeitersparnis wenn ichs Objekt hier schon anlege?
...
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
int berechnet;
// leite weiter an die Methode der anderen Klasse, welche den Request nun auswertet
berechnet = fac.tueAuswerten (request);
}
Idee 2:
Code:
class Test extends javax.servlet.http.HttpServlet..... {
...
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
int berechnet;
// leite weiter an die Methode der anderen Klasse, welche den Request nun auswertet
berechnet = Factory.tueAuswerten (request);
}
}
public class Factory {
..
public static int tueAuswerten(HttpServletRequest request) {
... berechnen und Wert zurückgeben
return wert;
}
}
Jemand ne Idee was nun "schneller" sein könnte?