Ankündigung

Einklappen
Keine Ankündigung bisher.

Mehrere Prozesse benötigen gleiche Laufzeit in der Summe

Einklappen

Neue Werbung 2019

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

  • #16
    Zitat von Tiberius Beitrag anzeigen

    pthreads ist mittlerweile Geschichte, damit kann man nicht mehr wirklich was anstellen. parallel wird auch nicht mehr fortgeführt
    und wie geht das nu, fork ?
    nur weil code nicht mehr verändert wird, heisst das nicht, das er nicht mehr brauchbar ist ..

    Kommentar


    • #17
      Für pthreads gibt es einen Fork aber ist nix offizielles und wird hauptsächlich im Kontext eines PocketMine Servers gepflegt. Wie lange Dylan den Fork noch pflegt, wer weiß. Ich arbeite an einer Threading Extension, ein paar Todos sind noch offen plus 8.1 und 8.2 Support. Ob das diese Jahr noch was wird, mal schauen. Vielleicht sollte ich mal einen Post für alle Interessierten starten, wie Threads in php aussehen könnten.
      DevBlog|3D Online-Shopping|Xatrium

      Kommentar


      • #18
        nutzt du dann fibers ?
        https://wiki.php.net/rfc/fibers

        Kommentar


        • #19
          Nein. Fibers sind cool für gewisse Zwecke, aber letztlich nur Green Threads. Fibers sind Stacks innerhalb eines Prozesses/Thread die hin und her switchen.
          DevBlog|3D Online-Shopping|Xatrium

          Kommentar


          • #20

            ich dahcte man könnte in der vent loop die threads sammeln.
            aber steht ja da, nichst für enduser

            Kommentar


            • #21
              Zitat von SteiniKeule Beitrag anzeigen
              Unter Windows verhält es sich, wie es soll. Mehr Prozesse = Geringere Laufzeit. Unter Linux jedoch nicht.

              Windows PHP Version => 8.0.12 - 8 Prozesse: Total: 3.57115483284
              Debian PHP Version => 8.0.21 - 8 Prozesse: Total: 47.785900115967

              Windows - 1 Prozess | create_process = false: Total: 20.751991033554
              Debian - 1 Prozess | create_process = false: Total: 58.229823112488

              Beide laufen auf der gleichen Hardware (inkl. CPU) mit jeweils 16 Kernen und mind. 8GB Ram

              Ich habe aktuell die Vermutung, dass es an der CLI-Ausführung liegt.
              Ich würde es auf die VM schieben, die du da nutzt. Ich kann mir nicht vorstellen, dass Windows da überhaupt schneller sein kann, egal wie wohlwollend mal da eingestellt ist.

              Das, was du da machst, klingt auf jeden Fall nach einem Sweetspot für MQs. RabbitMQ könnte ich dir da mal ans Herz legen.
              Da hast du ein Script, dass die Arbeit austeilt, eine Queue, die max n Einträge Puffern kann (beispiel 10) und <Anz. Prozessorkerne> × 2 Worker-Scripte, die die Arbeit empfangen und ein Ergebnis in eine andere Queue schreiben, dass von einem dritten Script verarbeitet wird. Könnte man prinipiell aber auch mit proc_open hinbekommen.

              Kommentar


              • #22
                Zitat von rkr Beitrag anzeigen
                Ich würde es auf die VM schieben, die du da nutzt. Ich kann mir nicht vorstellen, dass Windows da überhaupt schneller sein kann, egal wie wohlwollend mal da eingestellt ist.
                Er hat es doch schon raus gefunden. Unter Linux blockt der Aufruf von getrandom(). Sei es jetzt wegen mangelnder Entropie, oder weil dort irgendwo ein mutex drin ist.

                Kommentar

                Lädt...
                X