Geschwindigkeit der Codeausführung: ASP.NET-MVC versus PHP


73

Ich habe ein freundliches Argument mit einem Kollegen darüber, und meine persönliche Meinung ist, dass eine mit ASP.NET-MVC kompilierte Webanwendung effizienter / schneller ausgeführt werden würde als dasselbe Projekt, das in PHP geschrieben wurde. Mein Freund ist anderer Meinung.

Leider habe ich keine soliden Daten, mit denen ich meine Argumentation stützen kann. (er auch nicht)

Zu diesem Zweck habe ich bei Google nach Antworten gesucht, um Beweise zu finden, die ihn als falsch erweisen, aber die meiste Zeit hat sich die Debatte in die Plattform verwandelt, auf der es besser ist, Kosten, Sicherheitsfunktionen usw. zu entwickeln Argument Das interessiert mich wirklich nicht.

Ich möchte wissen, was die Stack-Overflow-Community von der Geschwindigkeit / Effizienz von Websites im Allgemeinen hält, die in ASP.NET mit MVC entwickelt wurden, im Vergleich zu genau derselben Website, die mit PHP entwickelt wurde.

Hat jemand praktische Beispiele in realen Szenarien, in denen die Leistung der beiden Technologien verglichen wird?

(Mir ist klar, dass dies für einige von Ihnen ein irrelevantes und vielleicht dummes Argument sein mag, aber es ist ein Argument, und ich würde immer noch gerne die Antworten der feinen Leute hier bei SO hören.)


34
Falls Sie es nicht wissen, basiert StackOverFlow auf ASP.NET MVC. Hier ist ein gutes Beispiel für ein großartiges Projekt mit ASP.NET MVC.
Umair Khan Jadoon

Antworten:


69

Es ist schwierig, einen Vergleich anzustellen, da Unterschiede in den jeweiligen Stapeln bedeuten, dass Sie am Ende dasselbe anders machen und wenn Sie sie zum Vergleich gleich machen, ist dies kein sehr realistischer Test.

PHP, das mir gefällt, wird in seiner grundlegendsten Form mit jeder Anfrage geladen, interpretiert und dann verworfen. In dieser Hinsicht ist es CGI sehr ähnlich (was keine Überraschung ist, wenn man bedenkt, dass es ungefähr 15 Jahre alt ist).

Im Laufe der Jahre wurden verschiedene Optimierungen vorgenommen, um die Leistung zu verbessern, insbesondere das Opcode-Caching mit APC (so sehr, dass APC ein Standardbestandteil von PHP 6 und kein optionales Modul wie jetzt sein wird).

Dennoch sind PHP-Skripte grundsätzlich vorübergehend. Sitzungsinformationen sind (normalerweise) dateibasiert und schließen sich gegenseitig aus (session_start () blockiert andere Skripte, die auf dieselbe Benutzersitzung zugreifen, bis session_commit () oder das Skript beendet ist), während dies in ASP.NET nicht der Fall ist. Abgesehen von Sitzungsdaten ist es ziemlich einfach (und normal), Objekte im Anwendungskontext in ASP.NET zu haben (oder Java, dem ASP.NET viel ähnlicher ist).

Dies ist ein wesentlicher Unterschied. Beispielsweise ist der Datenbankzugriff in PHP (unter Verwendung von MySQL, MySQL, PDO usw.) vorübergehend (ungeachtet dauerhafter Verbindungen), wohingegen .Net / Java fast immer dauerhafte Verbindungspools verwendet und darauf aufbaut, um ORM-Frameworks und dergleichen zu erstellen. Die Caches, für die keine bestimmte Anforderung besteht.

Als Plattform mit Bytecode-Interpretation ist ASP.NET theoretisch schneller, aber die Grenzen der Möglichkeiten von PHP sind so hoch, dass sie für die meisten Menschen irrelevant sind. 4 der 20 meistbesuchten Websites im Internet sind beispielsweise PHP. Entwicklungsgeschwindigkeit, Robustheit, Betriebskosten der Umgebung usw. sind in der Regel weitaus wichtiger, wenn Sie mit der Skalierung beginnen, als theoretische Geschwindigkeitsunterschiede.

Denken Sie daran, dass .Net primitive Typen, Typensicherheit und solche Dinge hat, die Code schneller machen, als PHP ihn ausführen kann. Wenn Sie einen etwas unfairen Test durchführen möchten, sortieren Sie auf beiden Plattformen ein Array von einer Million zufälligen 64-Bit-Ganzzahlen. ASP.NET wird es beenden, da es sich um primitive Typen handelt und einfache Arrays effizienter sind als die assoziativen Arrays von PHP (und alle Arrays in PHP sind letztendlich assoziativ). Außerdem hat PHP unter einem 32-Bit-Betriebssystem keine native 64-Bit-Ganzzahl und leidet daher sehr darunter.

Es sollte auch darauf hingewiesen werden, dass ASP.NET vorkompiliert ist, während PHP im laufenden Betrieb interpretiert wird (ausgenommen Opcode-Caching), was einen Unterschied machen kann, aber die Flexibilität von PHP in dieser Hinsicht ist eine gute Sache. Es ist großartig, ein Skript bereitstellen zu können, ohne den Server zu bouncen. Lass es einfach fallen und es funktioniert. Brillant. Aber letztendlich ist es weniger performant.

Letztendlich, obwohl ich denke, dass Sie darüber streiten, was wirklich ein irrelevantes Detail ist.


5
"Als Plattform mit Bytecode-Interpretation, ASP.NET" - es gibt keinerlei Interpretation für Java oder .NET. Es gibt eine 2-stufige Kompilierung: 1-Quellcode zu Bytecode / IL, 2-Bytecode / IL zu nativem Code. Am Ende wird nur nativer Code ausgeführt.
Andrei Rînea

10
Hervorragender und aufschlussreicher Vergleich. Aber ich muss auf eines hinweisen: "... die Flexibilität von PHP in dieser Hinsicht ist eine gute Sache. Es ist großartig, ein Skript bereitstellen zu können, ohne Ihren Server zu bouncen." Sie müssen Ihren Server in ASP.NET NICHT bouncen, um Codeänderungen freizugeben.
Tion

@Tion Ich bin mit ASP.NET-Hot-Deployments weniger vertraut als mit einigen anderen Frameworks, aber in Java können Sie beispielsweise JSP-Dateien ablegen und manchmal Klassen neu laden, aber in vielen Fällen müssen Sie einfach neu starten. Wie ist das zu vergleichen?
Cletus

6
Alle in dieser Antwort vorgenommenen Vergleiche scheinen PHP mit .NET (Webformulare) zu sein. Darüber kann ich sagen, dass PHP in der Praxis und in praktischen Szenarien schneller als .NET ist ... Grund für den Wechsel zu MVC ... Ich möchte immer noch einen Vergleich zwischen PHP und .NET MVC sehen
Nestor

1
Update auf .NET Core Überprüfen Sie dies und diesen Beitrag, es heißt, .NET Core ist schneller als PHP, stimmt das?
Shaijut

33

ASP.NET läuft schneller. Die ASP.NET-Entwicklung ist schneller. Kaufen Sie einen schnellen Computer und genießen Sie ihn, wenn Sie ernsthafte geschäftliche Webanwendungen ausführen

ASP.NET-Code wird im Vergleich zu PHP viel schneller ausgeführt, wenn er im Release-Modus erstellt, optimiert, zwischengespeichert usw. usw. Für Websites (außer Big Player wie Facebook) ist dies jedoch weniger wichtig - die meiste Zeit für das Rendern von Seiten ist Zugriff auf und Abfrage der Datenbank.

Beim Verbinden der Datenbank ist ASP.NET viel besser - in asp.net verwenden wir normalerweise LINQ, das unsere Objektabfragen in gespeicherte Prozeduren in der SQL Server-Datenbank übersetzt. Auch die Verbindung zur Datenbank ist dauerhaft, eine für eine Website, es ist keine erneute Verbindung erforderlich.

Im Vergleich dazu kann PHP keine SQL Server-Verbindung zwischen Anforderung halten, es stellt eine Verbindung her, holt Daten von der Datenbank und zerstört sie, wenn das erneute Verbinden der Datenbank häufig 20 bis 30% der Zeit für das Rendern von Seiten ausmacht.

Außerdem wird die gesamte Webanwendungskonfiguration bei jeder Anforderung in PHP neu geladen, wo sie in asp.net im Speicher verbleibt. Es kann leicht in großen Unternehmens-Frameworks wie symfony / symfony2 gesehen werden. Eine Menge Renderzeit ist symfony-interner Prozess, bei dem asp.net es einmal lädt und Ihren Server nicht für nutzlose Arbeit verschwendet.

ASP.NET kann Objekte im Cache im Anwendungsspeicher speichern - in PHP müssen Sie sie in Dateien schreiben oder Hack-ähnlichen Memcache verwenden. Die Verwendung von Memcache ist eine Menge Arbeit mit Parallelitäts- und Gefahrenproblemen (das Speichern des Cache in Dateien hat auch eigene Probleme mit der Parallelität - jede Anforderung startet einen neuen Thread des Apache-Servers und viele Anforderungen können gleichzeitig ausgeführt werden - Sie müssen über die Parallelität zwischen diesen nachdenken Threads, es nimmt viel Entwicklungszeit in Anspruch und funktioniert nicht immer, da PHP keine Mutex-Mechanismen in der Sprache hat, so dass Sie in keiner Weise kritische Abschnitte erstellen können.

Jetzt etwas zur Entwicklungsgeschwindigkeit: ASP.NET verfügt über zwei Hauptframeworks (Webforms und MVC), die in einer Umgebung installiert sind, in der Sie in PHP ein Open-Source-Framework benötigen. Es gibt kein Standard-Framework in PHP wie in asp.NET.

Die ASP.NET-Sprache ist so umfangreich, dass die Standardbibliothek Lösungen für häufig auftretende Probleme bietet, bei denen die PHP-Standardbibliothek ... nackt ... ist und nicht eine Namenskonvention beibehalten kann.

.NET verfügt über Typen, bei denen PHP dynamisch ist. Dies bedeutet, dass Sie den Quellcode erst dann steuern können, wenn Sie ihn ausführen oder Komponententests schreiben.

.NET hat eine großartige IDE, bei der PHP-IDEs durchschnittlich oder durchschnittlich gut sind (PHPStorm ist immer noch viel schlechter als VS + Resharper oder sogar ohne).

PHP-Gerüste in Symfony werden über die Befehlszeile ausgelöst, wenn ASP.NET-Gerüste in die Umgebung integriert werden.

Wenn Sie einen langsamen Computer wie meinen haben (ein Kern mit 2,2 GHz), kann die Entwicklung von asp.net-Seiten schmerzhaft sein, da Sie Ihr Projekt bei jeder Änderung des Quellcodes neu kompilieren müssen, wobei der PHP-Code sofort aktualisiert wird.

Die Syntax der PHP-Sprache ist im Vergleich zur C # -Syntax so unvollendet, unsicher und nackt. Starke C # -Typen und viele flexible Sprachfunktionen können Ihre Entwicklung beschleunigen und Ihren Code weniger fehlerhaft machen.


Meine Güte, LINQ zu erwähnen, sagt alles. Regulärer LINQ ist nicht mehr als ein normaler foreach / wenn das gut funktioniert, könnte er nur ein paar Codezeilen sparen und gleichzeitig die Flexibilität beeinträchtigen. Meistens sprechen wir jedoch über den (meist verhassten) LINQ to SQL, der für kleine Projekte in Ordnung ist, aber für alles Komplexe nutzlos ist. Ein einfaches und gekapseltes DAO ist viel sauberer als ein komplexes LINQ. Und es gilt für .net und für PHP. Zum Beispiel (nachdem die DAO-Schicht fertig ist) ist das Abrufen eines Benutzerobjekts so einfach wie das Aufrufen von c #: User = UserDAO.Get (id_user); und in php $ User = $ UserDAO-> Get ($ id_user);
Magallanes

4
@magallanes LINQ ist viel mehr als ein reguläres foreach / if, abhängig von der Implementierung des LINQ-Anbieters. Überprüfen Sie beispielsweise das Entity Framework. Ein einfaches gekapseltes DAO ohne typisierte geprüfte Abfragen mit potenziellen SQL-Injektionen, weil der Entwickler den Morgenkaffee verpasst hat, ist nicht viel sauberer, IMO ist das Gegenteil
Luis

@Luis Es ist jedoch absolut nicht zu leugnen, dass LINQ to SQL (wie jedes ORM) in den meisten Fällen einen erheblichen Overhead verursacht und die Leistung negativ beeinflusst. StackOverflow ist ein typisches Beispiel dafür, dass viel LINQ verwendet wurde, dann aber aus Leistungsgründen viel davon zurückgesetzt und durch ein eigenes Mikro-ORM ersetzt wurde.
Craig

@Craig Wenn Sie über LINQ sprechen, müssen Sie angeben, was die zugrunde liegende ORM- oder DAO-Engine ist. Einige Mikro-ORMs haben LINQ-Anbieter. Ich persönlich mag EF nicht und bevorzuge so etwas wie ein Mikro-ORM (wenn sie typisierte geprüfte Abfragen wie SQL Fu oder ORMlite zulassen), aber es hat nicht mit Leistung zu tun, sondern mit Transparenz und Lesbarkeit
Luis

@ Luis Ich glaube nicht, dass es LINQ ist, sondern die Natur der meisten ORMS. Im Fall von LINQ2SQL ist der Engpass also tatsächlich Enterprise Frameworks. LINQ selbst ist im Allgemeinen in Ordnung bis hervorragend. Es war die nächste sehr offensichtliche Entwicklung, als Microsoft Erweiterungsmethoden in C # einführte (danke Objective-C !!!!).
Craig

22

Nach meiner (nicht fest markierten) Erfahrung kann Asp.Net PHP in Bezug auf die Geschwindigkeit schnell übertreffen (und in einigen Bereichen sogar übertreffen). Ähnlich wie bei vielen anderen Fragen zur Wahl der Sprache ist die folgende Aussage (in diesem Fall) (meiner Meinung nach) gültig:

  • Es gibt langsame, fehlerhafte Websites in Sprache x (sei es PHP oder Asp.Net).
  • Es gibt großartige, schnelle Websites in Sprache x (sei es PHP oder Asp.Net)

Was ich damit sagen will: Die (Talente des) Entwicklers beeinflussen die Gesamtgeschwindigkeit mehr als die Wahl zwischen zwei (in einem abstrakten Ausmaß ungefähr gleichwertigen) Technologien.

In der Tat ist ein Vergleich der Gesamtgeschwindigkeit nicht sehr sinnvoll, da sich beide auf die eine oder andere Weise einholen können, es sei denn, Sie befinden sich in einer ganz bestimmten Fachnische (über die Sie uns nicht informiert haben).


16

Ich habe einen Leistungstest durchgeführt.

Programm: Summe von 10000000 Zahlen

Geben Sie hier die Bildbeschreibung ein

Geben Sie hier die Bildbeschreibung ein

Die gegebene Ausgabe beweist, dass PHP langsamer als C # ist ............


5
Was ist der Leistungsunterschied, wenn HHVM für PHP verwendet wird? Wie sieht der Code für beide Tests aus?
Drellgor

8
Um genau zu sein, führte C # /. NET diesen Test 42- mal schneller als PHP durch.
Craig

2
Ok, der Server wird bald das Ergebnis produzieren. Sehen Sie sich die Größe ASPx 285Bytes und Php 49Bytes an. Wenn also der Benutzer eine langsamere Verbindung hat, raten Sie, was passieren wird. oder über die Internetrechnung des Benutzers nachdenken, der die Site besucht?
Ziel

3
OP möchte einen Vergleich für .NET MVC, nicht für .NET WebForms. Anhand der Größe beider Ausgaben wird deutlich, dass die Seite test.aspx mit .NET WebForms und nicht mit .NET MVC codiert ist. Bei Verwendung von .NET MVC kann die Ausgabe dieselbe Größe wie PHP haben. Daher ist die Verbindungsgeschwindigkeit oder die Internetrechnung des Benutzers irrelevant.
Beawolf

2
Ich würde umschreiben als: 'Die gegebene Ausgabe beweist, dass, Gott weiß, unter welchen Bedingungen dieser Test durchgeführt wurde und wer weiß, wie der Code geschrieben wurde, PHP langsamer als C # ist ...'
Reuel Ribeiro

15

Ich würde ASP.net sagen

Dinge, die man beachten muss:

  • ASP.net ist vorkompiliert
  • ASP.net wird normalerweise in C # geschrieben, das schneller als PHP ausgeführt werden sollte

Zugegeben, die Unterschiede sind sehr gering. Beides hat Vorteile. Ich denke, PHP ist viel einfacher bereitzustellen und kann auf jedem Server ausgeführt werden, nicht nur auf IIS. Ich mag ASP.net MVC allerdings sehr gern.


.net Core ändert dies in Bezug auf die Bereitstellung auf jedem Server
Jacques

7

Ohne Optimierungen würde eine .net-kompilierte App natürlich "schneller" laufen als PHP. Aber Sie haben Recht, dass es ein dummes und irrelevantes Argument ist, weil es keinen Einfluss auf die reale Welt hat, außer Rechte zu prahlen.


6

Ich bin ein Entwicklerexperte für beide Technologien (ASP.Net c # und PHP5). Nach Jahren und Jahren des Arbeitens und Vergleichens in realen Produktionsumgebungen sind dies meine Eindrücke:

  • Erstens kann man sie nicht vergleichen, indem man eine Schleife mit addierenden Werten von 1.000.000 erstellt. Dies ist kein realer Fall.

  • Ist es nicht dasselbe, sie in meiner Entwicklungsumgebung zu vergleichen, als eine echte Produktionsumgebung. Beispiel: In der Entwicklung verwendet ASP.Net standardmäßig kein IIS. Verwenden Sie einen Server für die innere Entwicklung mit unterschiedlichen Optimierungen. In dev gibt es keine Parallelität.

Meine Meinung ist also die nächste:

  • Das 1.000.000-fache Schleifen von c # wird schneller sein (sinnlos)

  • Das Bereitstellen einer realen Seite, die auf die Datenbank zugreift, Bilder anzeigt, Formulare usw. hat. ASP.Net ist langsamer als PHP.

  • Das Gewicht von ASPX-Seiten ist x10 schwerer als das von PHP, sodass der Endbenutzer länger auf das Abrufen der Seite warten muss.

  • ASPX ist langsamer zu entwickeln als PHP, dies ist wichtig, weil am Ende Geld ist. Wir entwickeln in PHP eine 35% schnellere Entwicklung als in ASP.Net, da jedes Mal, wenn Sie smthg überprüfen möchten, kompiliert und neu gestartet werden muss.

  • In großen Projekten ist ASP.Net langfristig besser geeignet, um Fehler zu vermeiden, und verfügt über eine komplexe Architektur.

  • Aufgrund von Windows-Servern, IIS usw. benötigen Sie am Ende einen leistungsstarken Server, um die gleiche Anzahl von Benutzern auf ASP zu halten wie auf PHP. Beispiel: Wir arbeiten mit ASP.net bei ungefähr 20.000 gleichzeitigen Benutzern, und in PHP kann derselbe Server ungefähr 30.000 Benutzer erreichen.

Das einzig Wichtige ist nicht, wenn eine Schleife schneller ist. Die Sache ist, wenn die Website echt ist und in Produktion ist, wie viele Benutzer sie halten können, wie schwer die Seite ist (schwerer == mehr Wartezeit von Benutzern, mehr Nettoladung des Servers, mehr Festplattengebühr des Servers, mehr Speichergebühr von Server). Versuchen Sie die Überprüfungszeiten mit Parallelität und Sie werden sehen.

Ich hoffe es hilft.


5
Bis Sie einige vernünftige Metriken oder Links zu tatsächlichen Artikeln bereitstellen, kann ich auf diese Antwort nur Folgendes sagen: Nach meiner Erfahrung (die 15 Jahre Webanwendungs- und Anwendungsserverentwicklung in praktisch jeder Laufzeit von PHP bis umfasst Python zu .NET) PHP ist bei weitem die langsamste Laufzeit. Könnten Sie möglicherweise ASP mit ASP.NET MVC verwechseln? Denn die Frage betraf eigentlich den Vergleich von in PHP entwickelten Web-Apps (und ich glaube, dies beinhaltet die Annahme, ein PHP MVC-Framework zu verwenden, aber das ist nicht erforderlich) und in ASP.NET MVC entwickelten Web-Apps.
uygar.raf

1
Vielen Dank, dass Sie diese 'Antwort' gepostet haben. Sie fügt definitiv wertvolle Informationen hinzu und präsentiert andere Bereiche, die berücksichtigt werden müssen. Was die Leute nicht erkennen, ist, dass sie jede Antwort mit einem Körnchen Salz nehmen sollten, anstatt defacto zu antworten.
Paul Cristea

2
Gute Rückmeldung. Schade, dass die MS-Fanboys Ihre Antwort abgelehnt haben. Ich persönlich finde die PHP-Entwicklung schneller, einfacher und einfacher als .Net. Auch die Antwortzeiten der Anwendung in einer Live-Umgebung sind auf stark eingeschränkter Serverhardware sehr beeindruckend. Ich kann jetzt sehen, warum Php so beliebt ist
TheLegendaryCopyCoder

@TheLegendaryCopyCoder Ich glaube nicht, dass Downvoting stattgefunden hat, weil es sich um MS-Fanboys handelt. Es ist, weil Christian das Falsche vergleicht. ASPX ist viel langsamer als Asp.net MVC und hat weitaus größere Nutzlasten - es ist eine ältere Technologie. Ist es nicht sinnvoll, fast veraltete .net-Technologie mit modernen PHP-Umgebungen zu vergleichen?
Jacques

3

Im Allgemeinen bietet ASP.Net auf einer bestimmten Hardware eine bessere Leistung als PHP. ASP.Net MVC kann es noch besser machen (kann hier das operative Wort sein). Der größte Teil der Plattform wurde für die Unternehmensentwicklung entwickelt. Testbarer Code, Trennung von Bedenken usw. Ein Großteil des Aufblähens in ASP.Net stammt aus dem Objektstapel innerhalb der Seite (verschachtelte Steuerelemente). Das Vorkompilieren macht dies leistungsfähiger, kann jedoch ein Schlüsselproblem sein. MVC ermöglicht in der Regel weniger Verschachtelung mithilfe der Webforms-basierten Ansichts-Engine (andere sind verfügbar).

Die größten Verlangsamungen bei Webanwendungen sind in der Regel Remotedienste, insbesondere die Datenbankpersistenz. PHP wird ohne den Vorteil von Verbindungspooling oder In-Memory-Sitzungsstatus programmiert. Dies kann mit zwischengespeicherten und anderen leistungsfähigeren Service-Layern (auch für .Net verfügbar) überwunden werden.

Es kommt wirklich auf die Besonderheiten einer Site / Anwendung an. Auf dieser Seite läuft MVC auf recht bescheidener Hardware recht gut. Eine ähnliche Site unter PHP würde wahrscheinlich unter ihr eigenes Gewicht fallen. Andere Dinge zu beachten. IIS vs. Apache vs. LightHTTPD usw. Ehrlich gesagt ist das PHP vs. Asp.net viel mehr als nur rohe Leistungsunterschiede. PHP eignet sich nicht so gut für große, komplexe Anwendungen wie asp.net mvc, es ist so einfach ... Dies selbst hat mehr mit VS + SCC zu tun als alles andere.


1

Ich stimme Ihnen eher zu (dass ASP.NET MVC schneller ist), aber warum nicht eine freundliche Wette mit Ihrem Freund abschließen und die Ergebnisse teilen? Erstellen Sie eine wirklich einfache DYNAMISCHE Seite, die aus einer MySQL-Datenbank abgeleitet ist, und laden Sie die Seite mehrmals.

Erstellen Sie beispielsweise eine Tabelle mit 1.000.000 Zeilen, die einen sequentiellen Primärschlüssel und anschließend ein zufälliges # in der zweiten Spalte enthält. Jede Ihrer Sites kann den Primärschlüssel in einem GET akzeptieren, die Zufallszahl basierend auf dem übergebenen Schlüssel abrufen und die Zufallszahl in einer Art dynamisch generiertem HTML anzeigen.

Ich würde gerne die Ergebnisse erfahren ... und wenn Sie einen Blog oder ähnliches haben, würde dies auch der Rest der Welt tun (diese Frage wird ständig gestellt).

Es wäre sogar noch besser, wenn Sie diese einfache kleine App auch in normalem ASP erstellen könnten. Ich würde Sie sogar für diese Ergebnisse bezahlen, wenn der Test gut gestaltet wäre. Im Ernst - drücken Sie hier einfach Ihr Interesse aus und ich sende Ihnen meine E-Mail.


1

Beachten Sie, dass die Frage .NET MVC vs PHP ist, nicht .NET (Web Forms) vs PHP. Ich habe keine Fakten, aber das allgemeine Gefühl ist, dass PHP-Websites schneller ausgeführt werden als .NET-Webformularseiten (und ich mache nur .NET). .NET-Webformulare sind trotz Kompilierung und Interpretation von PHP im Allgemeinen langsam, da der gesamte Codeabschnitt, der von der .NET-Engine automatisch generiert wird, um den HTML-Code für jedes <asp: control> zu rendern, das Sie im Entwurfsmodus verwenden. Ein .NET-Webformular dazu zu bringen, schnell mit PHP zu konkurrieren, ist eine völlige Störung, die mit dem Setzen von EnableViewState = false beginnt und dazu führen kann, dass jedes HTML-Steuerelement mit runat = server verwendet wird ... verrückt, oder?

Nun, MVC ist eine andere Geschichte. Ich hatte zwei Websites mit .NET MVC2 erstellt und das Gefühl ist gut. Sie können die Geschwindigkeit jetzt spüren! und Code ist so sauber wie jede PHP-Website. MVC ermöglicht es Ihnen nun, sauberen Code wie PHP zu schreiben, und MVC wird gegen PHP interpretiert. Dies kann nur zu einer Sache führen: MVC ist schneller als PHP ... die Zeit wird es beweisen, wenn der allgemeine Sinn lautet: "MVC-Websites werden ausgeführt." schneller als PHP "dann haben wir recht mit dem, was ich heute hier sage.

wir sehen uns/!


-2

C ++ ... Im Moment wird der Kampf zwischen PHP und ASP.NET stattfinden. PHP gewinnt an Benutzerfreundlichkeit, ASP.NET an Leistung (in einem Windows Server-Ökosystem). Viele der größeren Websites, die mit PHP begonnen haben, sind auf C ++ umgestiegen.


1
Schauen Sie sich stackoverflow.com/help/how-to-answer an, um sicherzustellen, dass Sie gute Antworten geben und Abstimmungen vermeiden. In diesem Fall waren die Abstimmungen kein Zweifel, weil Sie von der PHP vs Asp.net MVC-Basis der Frage abgewichen sind. C ++ ist zwar eine praktikable Alternative, liegt jedoch außerhalb des Rahmens der Frage. Hoffe das hilft
Jacques
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.