inFern: PHP ersatz

Hallo,

Skriptsprachen sind doch alle seeehr langsam, klar sie müssen alle zuerst interpretiert werden und das dauert eben.
Wenn es dann auf jede halbe Mikrosekunde ankommt macht man sich schon so seine Gedanken ob PHP wirklich optimal für den Webeinsatz ist. Klar PHP wurde für Webserver (Apache) entwickelt, Aber es ist eine Skriptsprache.

Meine Alternative wäre es den Skriptteil von PHP zu umgehen.
Man könnte doch einfach eine neue Sprache/neues System entwickeln die/das so aussieht:
 * Man schreibt seine Webseite wie in PHP auch
 * Will man nun seine fertige Seite veröffentlichen wird sie zuerst vorkompiliert, da man praktisch eine neue Sprache schreiben müsste, dann mit gcc kompiliert. Ein Modul das wie PHP eingebunden wird ruft nun die kompilierte Seite auf und wartet auf deren Ausgabe und rückkehr und der Client hat seine Seite.
Die kompilierte Seite würde auch alle CSS und JS Dateien beeinhalten aber keine Bilder und Videos.

Request -> Apache -> [Modul]/(PHP) -> [kompilierte Seite]/(PHP-Skript) -> Ausgabe

Das Module würde auch die Request zuerst parsen und die der Seite als Parameter übergeben / bzw. Alternativen (vorallem bei POST und File Uploads)

Vorteile:
 * weniger Rechenzeit
 * eventuell weniger Speicherverbrauch

Nachteile:
 * man hat zunächst einen relativ grossen Aufwand

Was haltet ihr von dieser Idee?

Gruss inFern

  1. Hellihello inFern,

    aber was rauskommt ist HTML am Ende? Wieso nimmst Du dann nicht PHP als Generator von statischen HTML-Seiten? Vermutlich hab ich was falsch verstanden...;

    Gruß,

    frankx

    1. aber was rauskommt ist HTML am Ende? Wieso nimmst Du dann nicht PHP als Generator von statischen HTML-Seiten? Vermutlich hab ich was falsch verstanden...;

      Ja sicher oder eben CSS/JS & Co., eben eine Text-datei.

      PHP wird interpretiert vom PHP-Interpreter und meine Idee wäre es im übertragenen Sinne das PHP-Skript vorher schon zu interpretieren eben kompilieren und anstatt dem PHP-Interpreter das Skript ausführen zu lassen wird eben eine ausführbare, kompilierte Datei ausgeführt.

      Ich hoffe das es jetzt klarer geworden ist ;)

      inFern

      1. Hi,

        PHP wird interpretiert vom PHP-Interpreter und meine Idee wäre es im übertragenen Sinne das PHP-Skript vorher schon zu interpretieren eben kompilieren und anstatt dem PHP-Interpreter das Skript ausführen zu lassen wird eben eine ausführbare, kompilierte Datei ausgeführt.

        Ich denke, dazu müsstest du es in einer Anderen Sprache Programmieren.
        Welche Sprachen dafür alle in Frage kommen kann ich dir nicht genau sagen, aber eine schnelle, wenn nicht sogar die schnellste, (aber auch umständliche) möglichkeiten ist es mit C und der CGI-Schnittstelle.

        mfG,
        steckl

        1. PHP wird interpretiert vom PHP-Interpreter und meine Idee wäre es im übertragenen Sinne das PHP-Skript vorher schon zu interpretieren eben kompilieren und anstatt dem PHP-Interpreter das Skript ausführen zu lassen wird eben eine ausführbare, kompilierte Datei ausgeführt.

          Ich denke, dazu müsstest du es in einer Anderen Sprache Programmieren.

          Ich hätte da an C++ gedacht, da ich das am besten beherrsche ...

          Welche Sprachen dafür alle in Frage kommen kann ich dir nicht genau sagen, aber eine schnelle, wenn nicht sogar die schnellste, (aber auch umständliche) möglichkeiten ist es mit C und der CGI-Schnittstelle.

          1. Hi,

            Ich denke, dazu müsstest du es in einer Anderen Sprache Programmieren.

            Ich hätte da an C++ gedacht, da ich das am besten beherrsche ...

            Das geht auch mit CGI. Am besten du fragst dazu mal die Forumssuche oder Google.

            Wie viel Performance dir das ganze letztendlich bringt weiß ich nicht, aber ich denke mal, dass du dadurch auch ne ganze Menge mehr Programmieraufwand hast als beispielsweise mit PHP oder Perl.

            mfG,
            steckl

  2. Ich frag mich grad was an der Idee so neu ist und warum die schon existierenden Systeme (vorkompilierung des Codes und nur noch ausliefern der Seite) nicht in Frage kommen. Oder hab ich was nicht verstanden?

  3. Hallo,

    Request -> Apache -> [Modul]/(PHP) -> [kompilierte Seite]/(PHP-Skript) -> Ausgabe

    Das ist so ungefähr das, was bei Java-Webanwendungen mit JSP-Seiten passiert.

    Die werden beim erstmaligen Aufruf in ein Servlet umgewandelt und kompiliert...

    Gruß

    Stareagle

    1. Jupp. Deshalb hab ich ja schon gefragt, warum existente Techniken wohl nicht in Frage kommen. (Hier z.B. nen Tomcat)

      Es klingt so, als haette der Threadersteller eine geniale neue Idee, die sich mir aber nicht erschliessen will.

  4. Skriptsprachen sind doch alle seeehr langsam, klar sie müssen alle zuerst interpretiert werden und das dauert eben.

    Das gilt heute nicht mehr, früher hatte kompilierter Code einen echten Geschwindigkeitsvorteil, heute ist dieser marginal.

    Wenn es dann auf jede halbe Mikrosekunde ankommt macht man sich schon so seine Gedanken ob PHP wirklich optimal für den Webeinsatz ist. Klar PHP wurde für Webserver (Apache) entwickelt, Aber es ist eine Skriptsprache.

    Es gibt Leute, die entwickeln in C++ und kompilieren das Zeug zur "EXE".

    Meine Alternative wäre es den Skriptteil von PHP zu umgehen.
    Man könnte doch einfach eine neue Sprache/neues System entwickeln die/das so aussieht:

    Kann man die PHP-Scripte nicht auch kompilieren? (Ich meine bzgl. Perl mal sowas gelesen zu haben.)

    Was haltet ihr von dieser Idee?

    Nicht so toll.

    1. Meine Alternative wäre es den Skriptteil von PHP zu umgehen.
      Man könnte doch einfach eine neue Sprache/neues System entwickeln die/das so aussieht:

      Kann man die PHP-Scripte nicht auch kompilieren? (Ich meine bzgl. Perl mal sowas gelesen zu haben.)

      http://en.wikipedia.org/wiki/PHP#Source_code_Encoders.2C_Optimizers_and_Accelerators

    2. Hi there,

      Es gibt Leute, die entwickeln in C++ und kompilieren das Zeug zur "EXE".

      Aha. Und was machen die Leute, die in C++ entwickeln und das Zeug nicht zur "EXE" kompilieren? (Ich will jetzt einmal nicht pingelig sein und den Umstand, daß erst der Linker den Executable erzeugt, nachsichtsvoll beiseite lassen...)

      1. Hi!

        Aha. Und was machen die Leute, die in C++ entwickeln und das Zeug nicht zur "EXE" kompilieren? (Ich will jetzt einmal nicht pingelig sein und den Umstand, daß erst der Linker den Executable erzeugt, nachsichtsvoll beiseite lassen...)

        Ja, und die meisten Webserver laufen dann auch noch auf einem Unix-System und da macht man Files mit "chmod +x" ausführbar und erstellt sowieso keine "exe"-Files.
        Wenn wir schon mal pingelig sind... ;-)

        Schöner Gruß,
        rob

      2. Es gibt Leute, die entwickeln in C++ und kompilieren das Zeug zur "EXE".

        Aha. Und was machen die Leute, die in C++ entwickeln und das Zeug nicht zur "EXE" kompilieren? (Ich will jetzt einmal nicht pingelig sein und den Umstand, daß erst der Linker den Executable erzeugt, nachsichtsvoll beiseite lassen...)

        Nun ja, man kann das Zeug eben auch in andere Dateiformen, die dann vom OS exekutiert werden, umformen. Es ist nämlich merkwürdig, wenn man bspw. in der Adresszeile des Browsers das "EXE" sieht.

        Aber schön, dass Du Dich mal wieder gemeldet hast.

        1. Ich grüsse den Cosmos,

          Es ist nämlich merkwürdig, wenn man bspw. in der Adresszeile des Browsers das "EXE" sieht.

          Ist es das? Na dann ist ja gut, das bei eBay ne DLL drin steht.
          Wobei ich immer noch der Meinung bin, das eine DLL, wie in diesem Beispiel, nicht direkt ausführbar ist. Im übrigen ist es wesentlich üblicher, per ISAPI eine DLL aufzurufen, als direkt eine .exe

          Aber schön, das du dich gemeldet hast.

          Möge das "Self" mit euch sein

          --
          Neulich dachte ich mir, einmal S/M ausprobieren wäre eine tolle Erfahrung. Also hab ich Windows gebootet ...
          ie:{ br:> fl:| va:| ls:& fo:{ rl:( n4:{ de:] ss:) ch:? js:| mo:) sh:( zu:)
  5. Ich grüsse den Cosmos,

    Wenn es dann auf jede halbe Mikrosekunde ankommt macht man sich schon so seine Gedanken ob PHP wirklich optimal für den Webeinsatz ist.

    Im Web kommt es nicht auf Millisekunden an, weil der Flaschenhals die Netzwerkverbindung ist und nicht die Scriptlaufzeit.

    * Man schreibt seine Webseite wie in PHP auch
    * Will man nun seine fertige Seite veröffentlichen wird sie zuerst vorkompiliert, da man praktisch eine neue Sprache schreiben müsste, dann mit gcc kompiliert.

    Und was gefällt dir an den Lösungen nicht, die es bereits gibt?

    Möge das "Self" mit euch sein

    --
    Neulich dachte ich mir, einmal S/M ausprobieren wäre eine tolle Erfahrung. Also hab ich Windows gebootet ...
    ie:{ br:> fl:| va:| ls:& fo:{ rl:( n4:{ de:] ss:) ch:? js:| mo:) sh:( zu:)
    1. Hallo

      * Man schreibt seine Webseite wie in PHP auch
      * Will man nun seine fertige Seite veröffentlichen wird sie zuerst vorkompiliert, da man praktisch eine neue Sprache schreiben müsste, dann mit gcc kompiliert.

      Und was gefällt dir an den Lösungen nicht, die es bereits gibt?

      ... zumal gerade dieses Forum ein gutes Beispiel ist, dass es geht (der Großteil des Codes ist in C geschrieben), aber auch eines dafür, dass es nicht einfach ist, damit umzugehen. Christian hat ja die Weiterentwicklung wegen der fehlenden Unterstützung bei der Weiterentwicklung eingestellt. C ist, im Gegensatz zu PHP, nunmal nicht jedermanns Sache.

      Tschö, Auge

      --
      Die Musik drückt aus, was nicht gesagt werden kann und worüber es unmöglich ist zu schweigen.
      (Victor Hugo)
      <dingdong /><dingdong /><toc /><toc /><toc /><shout>Florence!</shout>
      Veranstaltungsdatenbank Vdb 0.1
      1. Ich grüsse den Cosmos,

        C ist, im Gegensatz zu PHP, nunmal nicht jedermanns Sache.

        Das stimmt. Ich hab meine alte Community komplett in C programmiert (Ausser der Chat, der wurde in Java entwickelt). Der einzige Nachteil war IMO, das man bei jeder kleinen Änderung neu kompilieren musste.

        Ansonsten finde ich C oder auch C++ sehr geeignet für Webanwendungen, wenn es um Besucherzahlen > 10000 pro Stunde geht.

        Möge das "Self" mit euch sein

        --
        Neulich dachte ich mir, einmal S/M ausprobieren wäre eine tolle Erfahrung. Also hab ich Windows gebootet ...
        ie:{ br:> fl:| va:| ls:& fo:{ rl:( n4:{ de:] ss:) ch:? js:| mo:) sh:( zu:)