Ankündigung

Einklappen
Keine Ankündigung bisher.

Lange PHP Funktion - Nebenläufigkeit/Auslagerung

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • #16
    Zitat von derwunner Beitrag anzeigen
    Wo steht das bitte?
    Hier:

    Zitat von https://github.com/krakjoe/pthreads
    SAPI Support

    pthreads v3 is restricted to operating in CLI only: I have spent many years trying to explain that threads in a web server just don't make sense, after 1,111 commits to pthreads I have realised that, my advice is going unheeded.

    So I'm promoting the advice to hard and fast fact: you can't use pthreads safely and sensibly anywhere but CLI.
    Und ich meinte auch kein Prozess in Prozess Gestarte. Ich meinte, dass die Web Anfrage EINEN Prozess startet. Dieser wiederum startet die Worker Threads. Hier machen Threads schon Sinn, schließlich ist es gängige Praxis Algorithmen durch Threads zu beschleunigen.
    Thread sind eine sehr komplexe Angelegenheit und machen nicht automatisch alles besser und schneller.
    [SIZE="1"]Atwood's Law: any application that can be written in JavaScript, will eventually be written in JavaScript.[/SIZE]

    Kommentar


    • #17
      Für mich sieht das ganze Thema so aus, als würdest du per FTP auf deine Verzeichnisse zugreifen, obwohl auf dem Server PHP läuft... Ich rate dir, falls möglich, NICHT mit ftp Verzeichnisse durchzugrasen, wenn du mit PHP direkt drauf zugreifen kannst.
      Andernfalls rate ich dir zu einer anderen Programmiersprache, insbesondere, da du hier PHP wirklich als performancekritisch ansehen kannst.
      Tutorials zum Thema Technik:
      https://pilabor.com
      https://www.fynder.de

      Kommentar


      • #18
        Danke lottikarotti

        Ansonsten im Code https://github.com/krakjoe/pthreads/...ds.c#L110-L130

        Kommentar


        • #19
          Aha, habe ich noch nie gehört. Klarer Favorit sollte hier RabbitMQ sein. Standardisiertes Protokoll und so...
          Bsp.: https://all-inkl.com/wichtig/anleitu...htung_479.html - Tellerrand und so...

          Klar wäre amqp oder so was schöner, aber wenn man keine Möglichkeit auf dem System hat, das zu nutzen hilft die schönste Technik nichts.

          Kommentar


          • #20
            Zitat von lottikarotti Beitrag anzeigen
            Thread sind eine sehr komplexe Angelegenheit und machen nicht automatisch alles besser und schneller.
            Nein, sind sie nicht zwangsläufig. Ich hatte vor Jahren z. B. mal in ASP .NET eine Ansicht aus der Warenwirtschaft ans Web angebunden. Zur Verfügung stand eine DLL Datei, Thread Handling und Datenbank Connection Buffer eingeschlossen. War alles bei MSDN gut dokumentiert, so konnte jede Connection einem Thread zugeordnet werden.
            Threads sind sehr komplex ist keine Ausrede sie nicht zu benutzen. Es gibt diverse Prinzipien wie Thread per Task etc., daran ist nichts kompliziert.

            Kommentar


            • #21
              Zitat von derwunner Beitrag anzeigen
              Nein, sind sie nicht zwangsläufig.
              Eben. Dann ist das ja klargestellt

              Zu deiner Aussage mit den Algos: auch diese müssen entsprechend konzipiert sein, um von Parallelisierung zu profitieren bzw. überhaupt Gebrauch davon machen zu können. Es gibt bspw. Algorithmen die nur sequentiell verarbeitet werden können. Auch kann der zusätzliche Overhead sich sogar negativ auf die Performance auswirken (Context Switch) - dadurch kann ein sequentieller Algo auch schneller sein.

              Zitat von derwunner Beitrag anzeigen
              Threads sind sehr komplex ist keine Ausrede sie nicht zu benutzen.
              Es gibt keinen Grund sich unnötig Komplexität ins Boot zu holen, wenn der Usecase das nicht verlangt. KISS.

              Zitat von derwunner Beitrag anzeigen
              Es gibt diverse Prinzipien wie Thread per Task etc., daran ist nichts kompliziert.
              Threads über ein simples Interface zu erzeugen und sich bunte Grafiken dazu anzugucken ist die eine Sache. Wie Threads technisch tatsächlich funktionieren und vom System umgesetzt werden, eine völlig andere. Wenn man das Potential von Threads wirkllich ausschöpfen will um damit Performance-Boosts zu erzeugen, dann reicht es nicht aus einfach 1000 Dateien auf 10 Threads verteilt abarbeiten zu lassen.

              Edit Das driftet mir zu sehr ab. Zum Thema Threading bin ich raus
              [SIZE="1"]Atwood's Law: any application that can be written in JavaScript, will eventually be written in JavaScript.[/SIZE]

              Kommentar


              • #22
                Zitat von derwunner Beitrag anzeigen

                Nein, sind sie nicht zwangsläufig. Ich hatte vor Jahren z. B. mal in ASP .NET eine Ansicht aus der Warenwirtschaft ans Web angebunden. Zur Verfügung stand eine DLL Datei, Thread Handling und Datenbank Connection Buffer eingeschlossen. War alles bei MSDN gut dokumentiert, so konnte jede Connection einem Thread zugeordnet werden.
                Threads sind sehr komplex ist keine Ausrede sie nicht zu benutzen. Es gibt diverse Prinzipien wie Thread per Task etc., daran ist nichts kompliziert.
                Er wollte mehr darauf hinaus, dass der Overhead durch das Task-Handling (ctx switcj auf dem CPU) meistens mehr Verlust als Nutzen entsteht. Und die meisten ignorieren das getrost - leider.
                [URL="https://github.com/chrisandchris"]GitHub.com - ChrisAndChris[/URL] - [URL="https://github.com/chrisandchris/symfony-rowmapper"]RowMapper und QueryBuilder für MySQL-Datenbanken[/URL]

                Kommentar

                Lädt...
                X