java vs php-benchmark

Ich bin ein php-Entwickler, aber in letzter Zeit schreiben musste, die gleiche Anwendung zweimal, einmal in php und einmal in java für eine Klasse nehme ich in der Schule. Aus Neugier habe ich einen benchmark auf die beiden und fand, dass die java-version wurde mit 2 bis 20-mal langsamer als die php-version, wenn die Datenbank zugegriffen wird, und 1-bis 10-mal langsamer ohne DB-Zugriff. Ich sehe zwei unmittelbare Möglichkeiten:

  1. Ich zu saugen java.
  2. Kann ich endlich sagen, die Menschen aufhören zu jammern über php.

Geschrieben ich mein servlet-code hier. Ich will keine nit-wählerisch jammern oder kleine Verbesserungen, aber kann jemand sehen, eine schreckliche eklatante performance-Problem gibt? Oder kann jemand erklären, warum Java-fühlt sich an wie es hat zu saugen?

Habe ich immer gehört, wie Leute sagen, dass java schneller und besser skalierbar als php, vor allem meinem Lehrer, er ist davon überzeugt, aber je mehr Anfragen gestellt werden, desto langsamer java bekommt. php scheint nicht betroffen zu sein, durch erhöhte Belastung, sondern konstant bleibt.

  • PHP ist sehr schnell, aber Java ist ein Bytecode-kompilierte Sprache, also es ist von Natur aus schneller.
  • Das ist, was ich sage. Alle im internet schwärmt, dass java ist sooooo viel schneller, aber auf meinem server es sucketh zu einem sehr hohen Grad im Vergleich zu php. Haben Sie Lesen die Frage?
  • Eine Dritte Möglichkeit ist, dass man nicht die performance-Messungen richtig.
  • Ich bitte die Seite mehrmals und sehen, wie lange es dauert. Ich weiß nicht, wie viel könnte schief gehen,.
  • jeder den ich kenne sagt php ist schneller, es hängt davon ab, wer Sie sprechen zu\ hören
  • Es ist ein großes problem in den Leistungs-Messungen, wie, dass; Lesen, auf "JVM " warmup". Auch, Ihre Java erstellt eine neue DB-Verbindung für jede Anforderung; Lesen, auf "JDBC connection pool".
  • Es gibt andere Probleme mit Ihrer Java -, aber Sie haben gesagt, dass Sie nicht möchten, dass "nit-picking", damit ich nicht verschwenden mein Atem.
  • In der Tat. Ein connection-pool eine Menge Fragen. Java ist ein bisschen mehr low-level als PHP. PHP nimmt viel Bösartigkeit von Ihren Händen, viel ist bereits optimiert, hinter den kulissen, aber in Java haben Sie mehr feinkörnige Kontrolle über diese selbst. Zu deinem code: das laden der JDBC-Treiber, der auf jede Verbindung von Aneignung ist unnötig. Tun Sie es einfach einmal während der Anwendung zu starten. Oh, Lesen/schreiben durch einen Puffer (BufferedReader/BufferedWriter) würde auch helfen, eine Menge.
  • können wir Ihre PHP-code?
  • Wenn Sie sagen, war Java 1-10x 2 20x langsamer - können Sie die Werte, die Sie bekam, einschließlich der Einheiten für PHP und Java? Ich möchte wissen, ob wir reden hier über Millisekunden oder Sekunden/Minuten.
  • C (oder @BalusC), nicht mit einer Verbindung, die auf jede Anfrage, die den Unterschied gemacht. Er legte es über gleich php auf die Anforderungen mit der db ergibt sich, wenn Sie wollen, posten Sie Ihre Antwort als eine Antwort kann ich markieren Sie es als akzeptiert. @BalusC, ich habe eine schnelle Suche und konnte Sie nicht finden, keine Dokumentation für einen bufferedwriter, haben Sie eine Quelle, die konnte ich Forschung aus?
  • BufferedWriter: download.oracle.com/javase/6/docs/api/java/io/...
  • Ich stellte eine Antwort als "community-wiki", die kapselt die Antwort von @Stephan und @BalusC. Ich nicht bekommen Kredit für die Antwort also, wenn Sie möchten, können Sie akzeptieren und Bearbeiten.
  • Es geht um zu zeigen, dass ein gut geschriebenes Programm in Ihrer Sprache wesentlich schneller als ein nicht so gut geschriebenes Programm, das in einer Sprache, die andere sagen, ist schneller. Es ist ein ähnliches argument mit Java vs C++ performance.
  • Ich nur Messen in der Mikro-Sekunden in meinem Java-Anwendungen. 😉

InformationsquelleAutor regality | 2011-02-12
Schreibe einen Kommentar