Hallo, hat jemand von Euch Erfahrung mit dem Play Framework 2. Ich teste gerade eine Minimalanwendung und vergleiche Java vs Scala und Windows vs Linux (Mint in der Virtual Box). Wie es aussieht, ist das Play Framework mit Scala etwas 10% schneller. Nun habe ich aber auch die gleiche Minimal Website zwischen Linux und Windows vergleichen. Fairer weise muß ich dazu sagen, das Linux in der Virtual Maschine läuft. Ich habe allerdings ein kleines Java Programm geschrieben und unter Windows und unter Linux laufen lassen. Dabei war das Programm auf dem virtuellen Linux ca 13% langsammer. Allso nicht so dramatisch. Betrachen wir das mal als nicht vorhanden. Nun habe ich mit einem weiteren in Java geschriebenen Testprogramm die Zeit gemessen, die benötigt wird, um 10000 mal die gleiche Seite zu laden. Und hier war ich dann doch etwas verwundert. TestApp Linux TestApp Windows WebApp Linux 6,4 Sek 6,7 Sek WebApp Windows 3,7 Sek 2,2 Sek Wie gesagt, daß sind jedes mal identische WebApps und identische TestApps. Wieso läuft die Play Anwendung unter Windows so schnell und unter Linux so viel langsammer? Kann man das Erklären? Ich habe auch mal mein Testprogrämmchen angehängt.
Deine Zeit wär sinnvoller investiert wenn du einfach mal dein Problem schon umgesetzt hättest mit den Mittel deiner Wahl anstatt nichtaussagekräftige "Performance"-Tests zu machen ;) Mittel der Wahl = Sprache+OS+Framework mit dem du am besten zurecht kommst.
Was soll diese Testapp bringen ? So ein "Performance Test" ist so sinnvoll wie Lederhosen türkisch sind. Performancevergleiche auf unterschiedlichen Ausgangssystemen kannst du dir auch direkt sparen. Auf Grund deiner Threads hier im Forum und den Fragen die du dort stellt, glaub ich nicht das Performance , egal in welcher Sprache, OS , etc, ein Problem für dich wird. Viel mehr fehlt dir ein grundlegendes Verständis von den Dingen die du gerade glaubst zu tun. Performance ist nicht per Definition durch ein Framework gegeben, sondern entsteht durch Algorithmen die genau auf ein Problem passen, durch richtige Anwendung der zugrundeliegenden Paradigmen. Du kannst das "Beste" Framework der Welt nehmen, wenn du nicht verstehst wie man es anwendet wird es dir auch nichts nützen.
In einer virtuellen Maschine Performance testen? Kreative idee, die messergebnisse zu deinen Gunsten zurecht zu biegen ;) Ernsthaft: Nimm ne livecd, oder einen weiteren baugleichen Rechner und installiere dir dort Linux.
Was ist so falsch darn, wenn man sich mal mit der Performance beschäftigt? Vielleicht ist es wirklich kein Thema, aber darf man diese Dinge nicht mal Interessehalber machen? Es gibt noch kein kontretes Projekt, aber es interessert mich halt, was möglich ist und welche Alternativen es gibt. > In einer virtuellen Maschine Performance testen? > Kreative idee, die messergebnisse zu deinen Gunsten zurecht zu biegen ;) Nun ja, auf dem gleichen virtuellen System habe ich auch eine Kombie aus Tomcat/JavaServlet getestet. Und da war die Reaktionszeit ähnlich wie unter Windows. (2,8s für 10000 Anfragen + SQL Abfrage). Die Sache mit der Linux CD werde ich vielleicht aber bei Gelegenheit mal ausprobieren. Aber ein anderes Java Applet (zum Vergleich der Plattformen) lief auf der virtuellen Maschine nur knapp 15% langsammer. Ist das nicht auch ein Argument dafür, daß der Performance Nachteil von Play auf Linux Mint nicht nur durch die VM entsteht? Wie würdet ihr denn ermitteln, wie Leistungsfähig eine Framework/Sprache/Server/was auch immer... ist. Ich denke, die Ausführungszeit zu Messen, ist schon einmal ein guter Anfang.
Das ist kein Performance-Test, sondern nur die Ausfuehrung eines selbstgeschriebenen Programms in unterschiedlichen Betriebssystemen. Ausserdem geht die VM noch durch zusaetzliche Treiber. Zwei vergleichbare VMs auf dem gleichen System kaeme der Sache schon naehe). Ueberlege mal, spaetestens bei den Disk I/O Werten wird die virtuelle Machine hinterhinken: Das Image-File deiner VM liegt irgendwo auf einem NTFS-Dateisystem (och) deiner Windows-Banane. Ausserdem, wie sind die Resourcen der VM eingestellt (CPU, Memory,..) und wo ist der Engpass auf der Linux-Seite (CPU load, CPU queue length, paging activity, I/O response).
Be Bo schrieb: > Was ist so falsch darn, wenn man sich mal mit der Performance > beschäftigt? Es sit nur falsch am falschen Ende zu beginnen: http://c2.com/cgi/wiki?PrematureOptimization
> Wie würdet ihr denn ermitteln, wie Leistungsfähig eine...
- Skalierung
- RAM verbrauch
- Antwortzeit
Spielt aber bei kleinen Projekte keine rolle.
Ich würde auch das nehmen was ich besser kenne
bzw. das was besser geeignet ist.
Und bei einer Webanwendung würder ich
als aller erstes auf die Sicherheit schauen.
Zum Performancetesten würd ich folgendes empfehlen : Dual Boot Installation (keine VMs ) Windows + Linux Einen weiteren Rechner auf dem der Performancetest ausgeführt wird (OS egal ) Zum testen von Apps gibt es verschiedene Ansatzpunkte 1. Datenschicht ( Reines SQL ( Verbindung offen lassen ) ) 2. Serviceschicht (EJB / REST , SOAP, ...) 3. Webapps ( Apache JMeter http://jmeter.apache.org/ ) Es gibt ein paar Regeln: 1. JavaApps brauchen etwas Zeit um max. zu performen ( JIT Compiler ), d.h Apps werden zur Laufzeit optimiert 2. Klar definierten Ausgangszustand herstellen ( OS, Software, ... ) 3. Klar definierten Test ( Aufpassen, dass die Test auch auf dem System laufen, d.h. 4231478932473 gleichzeitig laufende Testthreads sind keine gute Idee ) 4. Ziel definieren ( GQM - Ansatz, d.h. nur messen, was man auch messen will ) 5. Test mehrfach ausführen und Mittelwert/ Median berechnen
>(keine VMs )
(gemietete) webserver laufen praktisch immer in VMs
also würd ich es auch so testen..
Robert L. schrieb: > (gemietete) webserver laufen praktisch immer in VMs > also würd ich es auch so testen.. Wenn die "Performance" schon vor der eigentlichen Planung soo furchtbar wichtig ist, dann kann das später nie und nimmer auf einem VM-Mini-Mietserver laufen. Das muss zwangsläufig ein Root-Server-(Cluster) oder besser eine eigene Server-Farm werden. Deshalb auch unbedingt so testen. Dann: Ich bin schon gespannt auf dein Faceooglezon, wann isses denn fertig?
Εrnst B✶ schrieb: > Wenn die "Performance" schon vor der eigentlichen Planung soo > furchtbar wichtig ist, dann kann das später nie und nimmer auf einem > VM-Mini-Mietserver laufen. Wer sagt denn, daß die Performance so furchtbar wichtig ist. Ich habe nie gesagt, daß es um absolute Performance geht. Sondern immer nur, daß es auf einem gegebenen System möglichst schnell laufen soll. Oder anders formuliert: Wenn bei angemietetem Webspace nur ein Bruchteil der Leistung vom Entwicklungssystem zur Verfügung steht, dann soll es eben auch mit dieser geringen Leistung noch zügig laufen. Die ganzen vergleiche dienen nicht dazu, absolute Performancemaximierung zu betreiben, sondern sind nur ein Versuch, die relativ beste Performance zu erreichen. Und wenn ich weiß, daß z.B. Interpretersprachen langsammer sind, warum soll ich dann nicht gleich eine Compilersprache verwenden. Gleiches gilt für die Frameworks. Nur kann ich nicht alle testen. Also fragt man freudlich in einem Forum nach. Da bekommt man dann zur Antwort, daß man sich die falschen Ziele gesetzt hat. Nun ja, also beginnt man selber Tests zu machen. Wenn Studenten Masterarbeiten schreiben ist das auch nichts anderes. Die meißten können mit ihrer Masterarbeit auch nichts anfangen, aber sie investieren trotzdem Zeit. Gut, ich bekomme dafür kein Diplom, aber mich interessieren eben auch die Unterschiede zwischen den Frameworks und hier eben auch der Performance Aspekt. Läubi .. schrieb: > Es sit nur falsch am falschen Ende zu beginnen: > http://c2.com/cgi/wiki?PrematureOptimization Sehr guter Artikel. Aber im Artikel steht auch: > "Let's just make the app run as a simple single-threaded CGI executable. > We'll get the whole thing finished and then it will be easy to refactor > it into a J2EE server later on." Ich denke ein paar grundlegende Vorstellungen sollte man haben, bevor man anfängt. Optimieren was das Zeug hält kann man später, aber die Weichen schon mal in die richtige Richtung stellen sollte man möglichst früh. Ansonsten macht man nachher alles doppelt.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.