Use zval storage for php://memory stream
Personne n'a encore pris cette issue.
Évaluation
- Difficulté
- 5/5
- Temps estimé
- Plus d'une semaine
- Accessibilité débutants
- 35/100
- Type d'issue
- Fonctionnalité
- Clarté
- Plutôt claire
- Activité
- À l'abandon
- Domaine
- backend, performance
Piste de recherche
Commencez par suivre l’implémentation du flux php://memory et comparez son comportement en matière de stockage avec celui du wrapper personnalisé basé sur zval décrit dans l’issue. Déterminez comment php://temp doit être géré et comment le compromis de taille d’environ 200K affecte la conception. Le travail est terminé lorsque le flux bénéficie de copy-on-write sans dégrader les performances pour les chaînes plus petites.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Description
Description
The following code increases the peak memory usage of PHP twice:
$content = str_repeat('hello', 50000);
$h = fopen('php://memory', 'r+');
fwrite($h, $content);
The reason is that PHP cannot currently use copy-on-write when writing to the stream.
This is something that can be worked around by using a custom stream wrapper that keeps data in a zval, as done in e.g.
https://github.com/Nyholm/psr7/pull/230
Using this proved useful for strings longer than ~200K. For smaller strings, using a custom stream wrapper has a higher cost than the memcopy (see https://github.com/Nyholm/psr7/pull/241).
Could it be possible to improve php://memory (and possibly php://temp) to make it use a zval storage to benefit from copy-on-write?
- Langage dominant
- C
- Étoiles
- 40.4k
- Forks
- 8.2k
- Merge moyen
- 2 j 15 h
- PR mergées (30 j)
- 103
Guide de contribution
Ouvrir le guide de contribution
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Autres issues de php/php-src
-
Bug SAPI: cli_server Status: Verified
Difficulté 2/5 1-3 heures Accessibilité débutants 88/100
-
Bug Status: Needs Triage
Difficulté 2/5 1-3 heures Accessibilité débutants 76/100
-
Bug Status: Needs Triage
Difficulté 1/5 Moins d'une heure Accessibilité débutants 90/100
-
Bug Status: Needs Triage
Difficulté 2/5 1-3 heures Accessibilité débutants 78/100
-
Flaky hrtime.phpt test OuverteBug Category: Tests Status: Verified
Difficulté 2/5 1-3 heures Accessibilité débutants 68/100
Toutes les issues de php/php-src
Issues similaires
-
[adam] AdamNet network read doesn't cap to MAX_ADAM_PACKET_LEN, overflows client receive buffers Ouverte
Difficulté 2/5 1-3 heures Accessibilité débutants 88/100
FujiNetWIFI/fujinet-firmware#1649 · 2 commentaires ·
-
Difficulté 2/5 1-3 heures Accessibilité débutants 68/100
HarbourMasters/Shipwright#7229 ·
-
Error while building from source Ouverte
Difficulté 2/5 1-3 heures Accessibilité débutants 72/100
riscv-software-src/riscv-isa-sim#2435 · 1 commentaire ·
-
bug Self Built Image SNAPSHOT Supported Device target/ramips
Difficulté 2/5 1-3 heures Accessibilité débutants 88/100
-
Difficulté 2/5 1-3 heures Accessibilité débutants 76/100