Java vs PHP Speicher / CPU-Verbrauch

8

Ich arbeite in einem PHP-basierten Unternehmen. Es gibt ein Projekt, in dem wir einen Backend-Service erstellen möchten. Ältere Mitglieder hier setzen auf PHP, obwohl es langsamer als Java ist. Ihr einziger Streitpunkt ist, dass Java sowohl im Hinblick auf den Speicher als auch auf die CPU-Auslastung schwerer als PHP ist.

Jvm ähnelt eher einer Containerumgebung. Wenn Sie mehr Gepäck mitbringen, wird es so viel verbrauchen, aber der Service, über den wir hier sprechen, wird von mittlerer Komplexität sein. Die Chancen stehen also gut, dass es nicht sehr anspruchsvoll sein wird (oder?)

Ich verstehe, dass diese Frage stark zur Unbestimmtheit tendiert, aber mein Punkt des Nachdenkens ist, dass es immer der gleiche Fall ist? Dass Java mehr Hardware verlangt? Ich möchte nur die Meinungen aller erfahrenen Leute darüber erfahren, wie das tatsächliche Szenario aussieht.

Shades88
quelle
1
Eine weitere gute Frage: stackoverflow.com/questions/3975691/…
2
In den meisten Fällen ist die Sprache / Plattform nicht der entscheidende Faktor für die Geschwindigkeit. Wenn Sie beispielsweise eine Datenbank nicht ordnungsgemäß optimieren, ist sie unabhängig von der verwendeten Sprache langsam.
Großmeister
2
Ich verstehe nicht, warum Java mehr CPU als PHP beanspruchen würde. In den meisten Fällen würde ich das Gegenteil erwarten, da bei jeder Anfrage in der Regel weniger Startkosten anfallen.
Darius X.
1
@ Shades88 Nun, vielleicht sollten Sie oder sie einen kleinen Proof of Concept ausprobieren: Einige Module / Teile des Codes, von denen sie glauben, dass sie sehr speicherhungrig und / oder langsam in Java sind, sollten tatsächlich in beiden Sprachen implementiert werden und sehen, wie sie sich verhalten . Sie (sie) könnten von Dingen überrascht sein wie: Javas zusätzlicher Speicherbedarf liegt tatsächlich nicht so weit über dem, was die PHP-Version benötigt, Javas Version ist möglicherweise wesentlich schneller.
Shivan Dragon

Antworten:

10

Wenn Sie sich Sorgen um die Geschwindigkeit machen, schreiben Sie das Back-End in einer kompilierten, so schnell wie Sie möchten Sprache wie C oder C ++. Es gibt viele Webservice-Tools zum Erstellen einfacher C / C ++ - Webdienste, die Sie von Ihren PHP-Clients verwenden können.

Wenn Sie es jedoch schnell codieren möchten und die Leistung nicht so schlecht ist, schreiben Sie es in PHP. Sie haben auch den Vorteil, dass Sie bereits über die dafür erforderlichen Fähigkeiten verfügen. Das ist also ein doppelter Bonus.

Java ist im Vergleich zu PHP nicht massiv aufgebläht, es könnte ein "Schritt nach oben" sein, aber Sie müssen alle Kleinigkeiten und Tricks lernen, die Sie mit jedem neuen System benötigen, und ich bezweifle, dass sich der Nutzen im Vergleich dazu lohnt schreibe es einfach sofort in PHP. In den meisten Fällen, wenn Sie bereits über die erforderlichen Fähigkeiten verfügen, um dies in PHP zu tun, sollte dies die erste Wahl sein. Die Entscheidung, dies in einer anderen Sprache als Ihrem Hauptfachgebiet zu tun, sollte sehr sorgfältig überlegt und nur dann ausgewählt werden, wenn es bestimmte gibt Vorteile gegenüber Ihrem Primärsystem (was ich in diesem Fall nicht glaube)

gbjbaanb
quelle
Wie wäre es mit dem Kompilieren von PHP?
Виталий Олегович
1
mit Hiphop oder Phalanger? Könnte funktionieren, aber die CPU-Befehlsgeschwindigkeit ist normalerweise kein so großes Leistungsproblem im Vergleich zur Funktionsweise der Sprache - Cache-Treffer, Speichernutzung und E / A sind heutzutage wichtiger. In beiden Fällen heben Sie hervor, dass PHP für sie die bessere Wahl ist als Java.
Gbjbaanb
1
Ich denke, wenn die meisten von ihnen PHP gut kennen und keine sehr hohe Leistung benötigen, ist PHP die beste Sprache für sie.
Виталий Олегович
1
Ich wünschte, die Leute würden aufhören, "PHP kompilieren" vorzuschlagen. HipHop kompiliert kein PHP. HipHop ist ein Quellcode-Transformator von PHP nach C ++ (der dann mit einem C ++ - Compiler kompiliert wird). HipHop ist eine Lösung zur Auswahl der falschen Sprache für die Aufgabe.
Craige
2
@Craige: Eigentlich kompiliert HipHop nicht mehr zu C ++, es ist jetzt eine Laufzeit-JIT-Engine: github.com/facebook/hiphop-php/wiki
Joeri Sebrechts
4

Viele Java-Shops für Unternehmen neigen dazu, ihren Systemen viele Abstraktionen und Frameworks (wie ORMs, EJBs, Spring, Libs von Drittanbietern, Container usw.) hinzuzufügen. Manchmal sind diese Abstraktionen sinnvoll, aber oft führen sie zu Blähungen (Speicher, CPU) und Komplexität.

PHP, otoh, kann so ziemlich "wie es ist", Warzen und alles verwendet werden. Aber mit Java müssen Sie sicherlich viel mehr Teile jonglieren.

Sie müssen also auch diese anderen Dinge berücksichtigen, bevor Sie eine Entscheidung treffen.

Martin Wickman
quelle