Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

377
Visualizações
(¿Por qué?) ¿Lodash es lento?

Me sorprendieron los resultados descritos en esta respuesta y respaldados por este punto de referencia que compara esa solución (JavaScript nativo) con la que propuse (Lodash) .

También he comparado la solución propuesta:

 const obj = { name: undefined, age: 15, school: 'Some school' } const hasOnly = (obj,props) => { var objProps = Object.keys(obj) return objProps.length == props.length && props.every(p => objProps.includes(p)) } console.log(hasOnly(obj,['name','age'])) //return false console.log(hasOnly(obj,['name','age','city'])) //return false console.log(hasOnly(obj,['name','age','school'])) //return true

con uno en el que realmente simplemente cambio de cada función nativa a la función correspondiente en Lodash,

 hasOnly = (obj,props) => { const objProps = _.keys(obj) return _.size(objProps) == _.size(props) && _.every(_.includes(objProps), props); }

y el resultado sigue siendo decepcionante a favor de la solución nativa .

Ahora, el de arriba puede ser un ejemplo tonto, pero aun así... > ¿90% más lento? Entonces, ¿para qué estoy usando Lodash? Quiero decir, en diferentes escenarios puede mejorar la legibilidad, especialmente cuando las funciones tienen que ser parcialmente aplicadas y pasadas, donde Lodash te ahorra mucho x => x. (ejemplo clásico arrayOfarrays.map(_.map(fOnTheElements)) en lugar de arrayOfarrays.map(arr => arr.map(fOnTheElements)) ), pero si el rendimiento es tan bajo, entonces es un poco difícil hacer que la expresividad sea suficiente para elegir Lodash sobre el código nativo.

Soy nuevo en JavaScript y Lodash (pero no totalmente nuevo en programación funcional), por lo que ni siquiera conozco la confiabilidad de la herramienta de referencia que se usó en la respuesta vinculada, pero no puedo creer que sea tan malo. trabajo que invierte el resultado.

about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

Lodash es solo javascript. No hay magia que pueda hacerlo más rápido que el código nativo en el que está escrito.

En resumen, cada llamada de método tiene una sobrecarga. entonces si lo hago

 const len = myArr.length

y lo hace

 const len = _.size(myArr);

y asumimos que la implementación de _.size es

 function size(arr){ return arr.length }

(Hace más que eso, ¡pero quédese conmigo aquí!) Entonces, al menos, tiene una llamada de método adicional que la solución nativa no tiene.

De hecho, _.size hace incluso más que solo verificar la longitud

Obtiene el tamaño de la colección devolviendo su longitud para valores similares a una matriz o el número de propiedades con clave de cadena enumerables propias para los objetos.

Entonces, además de una llamada de método adicional, tiene el código para verificar el "número de propiedades enumerables con clave de cadena". ¿Realmente es de extrañar que una solución nativa sea más rápida?


Entonces, ¿por qué usar una biblioteca como lodash? Porque como su documentación titula:

Lodash facilita JavaScript al eliminar la molestia de trabajar con matrices, números, objetos, cadenas, etc.

Por lo tanto, sacrifica un poco de velocidad por legibilidad y facilidad de uso.

about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda