__spread Performance Issues
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Aptitud para principiantes
- 25/100
- Tipo de issue
- Error
- Claridad
- Necesita aclaración
- Estado de actividad
- Estancado
- Stack tecnológico
- typescript
- Área
- performance
Línea de trabajo
Empieza reproduciendo el benchmark del issue e inspecciona el helper tslib.__spread que este utiliza. Compara sus resultados y tiempos con los casos mostrados de spread nativo, Array.prototype.push.apply y concat; para darlo por terminado sería necesaria una mejora de rendimiento acordada sin cambiar el comportamiento.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
__spread
var tslib = require("tslib");
const { concat } = require('lodash')
var testPushES6 = function(abc) {
var arr1 = [1,2,3,-1]
var arr2 = [4,5,6,7,8,9,10,12,13,14,15,16,17,18,29,30,31,32,33,34,35,36,37,38,39,40]
const arr = arr1.push(...arr2)
}
var testPush = function(abc) {
var arr1 = [1,2,3,-1]
var arr2 = [4,5,6,7,8,9,10,12,13,14,15,16,17,18,29,30,31,32,33,34,35,36,37,38,39,40]
Array.prototype.push.apply(arr1, arr2)
}
var testPush2 = function(flag) {
var arr1 = [1,2,3,-1]
var arr2 = [4,5,6,7,8,9,10,12,13,14,15,16,17,18,29,30,31,32,33,34,35,36,37,38,39,40]
arr1.push.apply(arr1, tslib.__spread(arr2));
}
var testConcat = function(abc) {
var arr1 = [1,2,3,-1]
var arr2 = [4,5,6,7,8,9,10,12,13,14,15,16,17,18,29,30,31,32,33,34,35,36,37,38,39,40]
var arr = arr1.concat(arr2)
}
var testConcat = function(abc) {
var arr1 = [1,2,3,-1]
var arr2 = [4,5,6,7,8,9,10,12,13,14,15,16,17,18,29,30,31,32,33,34,35,36,37,38,39,40]
var arr = concat(arr1, arr2)
}
var count = 1000000
var date = Date.now()
for (var i = 0; i < count; i++) {
testPushES6()
}
// 136
console.log(Date.now() - date)
var date = Date.now()
for (var i = 0; i < count; i++) {
testPush()
}
// 139
console.log(Date.now() - date)
var date = Date.now()
for (var i = 0; i < count; i++) {
testPush2()
}
// 1005
console.log(Date.now() - date)
var date = Date.now()
for (var i = 0; i < count; i++) {
testConcat()
}
// 310
console.log(Date.now() - date)
var date = Date.now()
for (var i = 0; i < count; i++) {
testConcat2()
}
// 810
console.log(Date.now() - date)
- Lenguaje dominante
- TypeScript
- Estrellas
- 1.3k
- Forks
- 146
- Métricas de merge de PR
- Sin PR fusionados en 30 d
Preparar el entorno
Este proyecto no incluye contenedor de desarrollo, Dockerfile ni guía de contribución, así que la configuración corre por tu cuenta: empieza por su README y consulta nuestra guía para la primera contribución para los pasos generales.
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 microsoft/tslib
-
Dificultad 1/5 Menos de una hora Aptitud para principiantes 1/100
-
__extends继承Array时,不符合预期Abiertoquestion
Dificultad 4/5 3-5 días Aptitud para principiantes 38/100
-
Dificultad 1/5 Menos de una hora Aptitud para principiantes 15/100
-
Dificultad 3/5 1-2 días Aptitud para principiantes 35/100
-
Performance improvementAbierto
Dificultad 4/5 3-5 días Aptitud para principiantes 35/100
Todos los issues de microsoft/tslib
Issues similares
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 88/100
Effect-TS/effect#8881 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
Discover carries headerEdges that nothing reads since #1914 moved E0507/E0517 to the compiler graphAbiertotech-debt
Dificultad 2/5 1-3 horas Aptitud para principiantes 84/100
Los mantenedores suelen responder en 1 día
-
mail processing verified
Dificultad 2/5 1-3 horas Aptitud para principiantes 88/100
Los mantenedores suelen responder en 7 días
-
Add: Channel 5 (Singapore) SDAbiertocheck:passed streams:add
Dificultad 1/5 Menos de una hora Aptitud para principiantes 86/100
Los mantenedores suelen responder en 1 día
-
bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 74/100
OpenSlides/OpenSlides#7180 ·