php / php/php-src

io_uring for stream_copy_to_stream

Aperta
#8,013 4 commenti 5 reazioni 0 assegnatari Vedi su GitHub

Nessuno ha ancora preso questa issue.

Category: Streams Feature Status: Needs Triage
Lingua principale
C
Stelle
40.4k
Fork
8.1k
Merge medio
2g 13h
PR unite (30g)
96

Descrizione

Description

Hello,

It would be really nice to implement io_uring like here https://lwn.net/Articles/879724/ (talked in hn on https://news.ycombinator.com/item?id=30144652) to get stream_copy_to_stream() really performant.
example code here : https://lwn.net/ml/linux-kernel/af0d6b3e-85d0-9b61-4acd-5eef1375f934@gmail.com/
It would help a lot of stream proxy in php to be handled directly in the kernel, and increase drastically the performance.

From many test, stream_copy_to_stream() is sadly "slow" because it didn't use any trick, like sendfile() or 0copy, but instead is just a warper for a classic read/write loop, no gain in performance.

Guida per i contributori

Apri la guida per i contributori

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Direzione di ricerca

La richiesta nomina stream_copy_to_stream(), ma non identifica alcun file sorgente né alcun test. Leggi l’articolo e l’esempio io_uring collegati, quindi individua l’implementazione in C e i test correlati a stream_copy_to_stream(). Il completamento dovrebbe includere un approccio all’implementazione concordato e la verifica che il comportamento prestazionale richiesto funzioni.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Valutazione

Stack tecnologico
c, linux, php
Ambito
backend, performance
Tipo di issue
Funzionalità
Difficoltà
5/5
Tempo stimato
Più di una settimana
Stato di attività
Ferma
Chiarezza
Da chiarire
Idoneità per principianti
25/100

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.