Benchmarks for common python I/O patterns
Personne n'a encore pris cette issue.
Évaluation
- Difficulté
- 4/5
- Temps estimé
- 3-5 jours
- Accessibilité débutants
- 35/100
- Type d'issue
- Fonctionnalité
- Clarté
- Plutôt claire
- Activité
- À l'abandon
- Stack technique
- python
- Domaine
- performance
Piste de recherche
Examinez l’organisation existante des benchmarks de pyperformance et les formes d’I/O proposées dans cette issue, en limitant la portée à la couche Binary/Bytes IO. Définissez un groupe exécutable manuellement couvrant les cas courants sélectionnés, puis vérifiez qu’il n’est pas activé par défaut et que les benchmarks exercent les schémas prévus de fichiers, de flux, d’archives, d’importation ou de concurrence.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Description
As work happens on I/O pieces I've been building specialized micro-benchmarks (ex. gh-120754 Speed up open().read() pattern by reducing the number of system calls and others have gh-117151: IO performance improvement, increase io.DEFAULT_BUFFER_SIZE to 128k), it would be nice to have more general benchmarks to validate I/O performance for common cases.
Talking a little with people at PyConUS there was some interest in the tests, and a general desire for I/O tests not to be enabled by default, but to be a group which can be manually run.
General I/O shapes I'm hoping to add benchmarks for:
- read/write all of the byes of a file in a single call (including pathlib.Path.read_text, pathlib.Path.write_text)
- read/write many small files (ex.
.pycfiles, maybe justcompile_all?) - streaming bytes read/write (ex. to a pipe / console such as stdin/stdout/stderr, non-seekable devices)
- read/write a zipfile, tarfile (read + seek, write + seek, in particular buffering behavior)
- use
zipimport - Create a
zipapp - Multi-threaded write to stdout, stderr (ex. logging in a large application/codebase)
Note: With these aiming to stay at the Binary / Bytes IO layer as much as possible (not touch Text I/O for now)
- Langage dominant
- Python
- Étoiles
- 1k
- Forks
- 203
- Merge moyen
- 1 h 20 min
- PR mergées (30 j)
- 2
Guide de contribution
Aucun guide de contribution indexé pour ce dépôt
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 python/pyperformance
-
Difficulté 2/5 1-3 heures Accessibilité débutants 75/100
python/pyperformance#346 · 3 commentaires ·
-
python/pyperformance#474 · 4 réactions · 1 personne assignée ·
-
Enable decimal benchmarks Ouverte
Difficulté 3/5 1-2 jours Accessibilité débutants 25/100
python/pyperformance#473 ·
-
Difficulté 3/5 1-2 jours Accessibilité débutants 55/100
python/pyperformance#464 ·
-
Difficulté 4/5 3-5 jours Accessibilité débutants 48/100
python/pyperformance#460 · 2 commentaires · 1 réaction ·
Toutes les issues de python/pyperformance
Issues similaires
-
triage/confirmed
Difficulté 2/5 1-3 heures Accessibilité débutants 88/100
agentscope-ai/agentscope#2775 ·
-
comp/desktop P3 type/bug
Difficulté 1/5 Moins d'une heure Accessibilité débutants 92/100
NousResearch/hermes-agent#118866 ·
-
bug
Difficulté 1/5 Moins d'une heure Accessibilité débutants 90/100
apache/cloudstack#14222 ·
-
Difficulté 2/5 1-3 heures Accessibilité débutants 76/100
-
bug
Difficulté 2/5 1-3 heures Accessibilité débutants 82/100