bytearray slice assignment for bytes-like object is much slower than that for bytearray
Nadie ha tomado este issue todavía.
- Lenguaje dominante
- Python
- Estrellas
- 77.2k
- Forks
- 36k
- Métricas de merge de PR
- Métricas de PR pendientes
Descripción
Bug report
bytearray slice assignment for bytes-like object is much slower than that for bytearray
On my machine:
python -m timeit -s "a=bytearray(4096);b=b'x'*1024;" "a[:1024]=b"
1000000 loops, best of 5: 296 nsec per loop
python -m timeit -s "a=bytearray(4096);b=memoryview(b'x'*1024);" "a[:1024]=b"
1000000 loops, best of 5: 293 nsec per loop
python -m timeit -s "a=bytearray(4096);b=bytearray(b'x'*1024);" "a[:1024]=b"
5000000 loops, best of 5: 80.4 nsec per loop
On official Python playground(https://www.python.org/shell/):
import timeit
timeit.main(["-s", "a=bytearray(4096);b=b'x'*1024;", "a[:1024]=b"])
1000000 loops, best of 5: 272 nsec per loop
timeit.main(["-s", "a=bytearray(4096);b=memoryview(b'x'*1024);", "a[:1024]=b"])
1000000 loops, best of 5: 268 nsec per loop
timeit.main(["-s", "a=bytearray(4096);b=bytearray(b'x'*1024);", "a[:1024]=b"])
5000000 loops, best of 5: 78.8 nsec per loop
Your environment
- CPython versions tested on: 3.11.1
- Operating system and architecture: Windows 10 22H2 x86-64
Linked PRs
- gh-101445
Guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Línea de trabajo
Empieza reproduciendo los tres benchmarks de python -m timeit indicados en el issue con la versión de CPython especificada y compara los casos de bytearray, bytes y memoryview. Revisa el PR enlazado gh-101445 para consultar el trabajo ya asociado con este issue; la solución debe abordar la diferencia de rendimiento reportada sin introducir regresiones en el comportamiento de asignación de slices.
Escrito por el modelo de indexación a partir del texto del issue.
Evaluación
- Stack tecnológico
- python
- Área
- backend
- Tipo de issue
- Error
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Estado de actividad
- Estancado
- Claridad
- Bastante claro
- Aptitud para principiantes
- 20/100