readFile in promises very slow
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Aptitud para principiantes
- 20/100
- Tipo de issue
- Error
- Claridad
- Necesita aclaración
- Estado de actividad
- Estancado
- Stack tecnológico
- javascript, node.js
- Área
- performance
Línea de trabajo
Comienza ejecutando los dos benchmarks proporcionados en Node.js v21.7.1 y comparando fs/promises.readFile con util.promisify(fs.readFile). Investiga la diferencia de rendimiento utilizando los puntos de entrada fs/promises y fs mencionados en el informe; para darlo por terminado se requiere una explicación reproducible y un comportamiento esperado confirmado.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Version
v21.7.1
Platform
Darwin evgeniis.local 23.4.0 Darwin Kernel Version 23.4.0: Wed Feb 21 21:44:43 PST 2024; root:xnu-10063.101.15~2/RELEASE_ARM64_T6000 arm64
Subsystem
No response
What steps will reproduce the bug?
slow
const fs = require('fs/promises');
const start = Date.now();
let count = 0;
for (let i = 0; i < 10000; i++) {
fs.readFile("./text.txt", { encoding: 'utf-8' })
.then((data) => {
if (data !== "Hello, world") throw 1;
count++
if (count === 10000) {
console.log('time: ', Date.now() - start);
}
})
.catch((err) => {
throw 1
})
}
fast
const fs = require('fs');
const util = require('util');
const readFile = util.promisify(fs.readFile);
const start = Date.now();
let count = 0;
for (let i = 0; i < 10000; i++) {
readFile("./text.txt", { encoding: 'utf-8' })
.then((data) => {
if (data !== "Hello, world") throw 1;
count++
if (count === 10000) {
console.log('time: ', Date.now() - start);
}
})
.catch((err) => {
throw 1
})
}
How often does it reproduce? Is there a required condition?
No response
What is the expected behavior? Why is that the expected behavior?
No response
What do you see instead?
The promise version is 2 times slower. My tests showed 200ms vs 100ms
Additional information
No response
- Lenguaje dominante
- Shell
- Estrellas
- 399
- Forks
- 11
- Merge medio
- 29 min
- PR fusionados (30 d)
- 1
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.
Más de nodejs/performance
-
Dificultad 4/5 3-5 días Aptitud para principiantes 48/100
nodejs/performance#195 · 1 comentario · 1 reacción ·
-
Dificultad 4/5 3-5 días Aptitud para principiantes 35/100
nodejs/performance#194 · 5 comentarios · 1 reacción ·
-
benchmark-needed
Dificultad 4/5 3-5 días Aptitud para principiantes 30/100
nodejs/performance#193 · 1 comentario · 3 reacciones ·
-
Optimize TextEncoder::encode Abiertomajor performance regression
Dificultad 4/5 3-5 días Aptitud para principiantes 35/100
nodejs/performance#192 · 33 comentarios · 7 reacciones ·
-
good first issue
Dificultad 4/5 3-5 días Aptitud para principiantes 42/100
nodejs/performance#187 · 11 comentarios ·
Todos los issues de nodejs/performance
Issues similares
-
out-of-date
Dificultad 1/5 Menos de una hora Aptitud para principiantes 82/100
CachyOS/CachyOS-PKGBUILDS#1894 ·
-
[InvoiceShelf] No database info Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
community-scripts/ProxmoxVE#17396 · 1 comentario ·
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
mattpocock/skills#1099 ·
-
No-op if nothing loads zsh/zle Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
-
Update Vish to 1.1.5 Abiertopackage-update
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
oSoWoSo/vOid_Community_repOsitory#144 · 1 comentario ·