2012-08-13 11 views
7

¿Alguien sabe si se han realizado estudios que muestran la sobrecarga de rendimiento de usar bibliotecas de JavaScript (que no sean las obvias de su tiempo de descarga) frente al uso de javascript básico? Las bibliotecas son tan grandes en estos días y tenía curiosidad.Sobrecarga de rendimiento de las bibliotecas de JavaScript

Según mi grado de informática, parece que debería tener crecimiento n. (en otras palabras, lineal).

En términos de informática esto no es amenazante, pero ¿cómo afecta realmente el tiempo de carga de la página y el rendimiento de la página en milisegundos? Sé que la CPU es un problema, RAM, etc. ¿Pero hay alguna prueba realizada que pueda medir este tipo de cosas?

Sé que otro factor es que las bibliotecas a menudo están optimizadas para hacer casi lo mismo que codificaría a mano de una manera menos optimizada, pero también las bibliotecas tienen una sobrecarga y no se usará toda esa funcionalidad.

Editar: me encontré con esto que parece responder a mi pregunta de manera completa a pesar de que comenzó en otra cosa: When to use Vanilla JavaScript vs. jQuery?

"A medida que los comentarios son rápidos en señalar (y estoy de acuerdo con el 100%) las declaraciones anteriores se refieren al código de evaluación comparativa. Una solución de JavaScript "nativa" (suponiendo que esté bien escrita) superará a una solución de jQuery que logra lo mismo en casi todos los casos (me gustaría ver un ejemplo). jQuery sí Acelerar el tiempo de desarrollo, lo cual es un beneficio significativo que no quiero minimizar. Facilita la lectura y el código fácil de seguir, que es más que algunos desarrolladores. Re capaz de crear por su propia cuenta.

En mi opinión, entonces, la respuesta depende de lo que está intentando lograr. Si, como supuse en base a su referencia a los beneficios de rendimiento, busca la mejor velocidad posible de su aplicación, el uso de jQuery presenta una sobrecarga cada vez que llama a $(). Si busca legibilidad, coherencia, compatibilidad con navegadores cruzados, etc., entonces hay razones para preferir jQuery a JavaScript "nativo".

+0

Esta es una pregunta tan general que no creo que pueda ser respondida. La sobrecarga es diferente para cada biblioteca, y depende de lo que esté haciendo con ellos. –

+0

Tal vez así sea, pero esperaba que alguien supiera de algún estudio realizado para probar diferentes tipos de usos que intentaran mostrar una imagen más grande. Mi intuición es que las bibliotecas siempre tienen una sobrecarga adicional, pero hacen que el desarrollo y el mantenimiento sean menos costosos. – Wolfe

+0

Creo que sus suposiciones sobre cómo el uso de una biblioteca afecta el rendimiento son básicamente incorrectas, especialmente cuando dice cosas como "también las bibliotecas tienen una sobrecarga y no se usará toda esa funcionalidad". Si una biblioteca proporciona una función y usted usa esa función, no será más lenta que si esa función estuviera en su propio código fuente. Si la biblioteca también hace otras cosas, la presencia de la funcionalidad no utilizada no hará que el código se ejecute más lentamente, aunque podría agregar unos K extra para cargar desde el servidor. –

Respuesta

1

¡Esta es una buena pregunta! Junto al tiempo de descarga de la biblioteca, la mayoría de los marcos no están funcionando demasiado, lo que significa que no demoran la aparición de la página o algo así.

El método $ .css de JQuery, que facilita el estilo de los elementos, puede convertirse en un cuello de botella de rendimiento si necesita desencadenar esto muy a menudo y operar directamente en el objeto de estilo es mucho más rápido.

Mi opinión es que es mejor hacer más cosas con javascript simple, más tiene que obtener un alto rendimiento. Para cosas normales como solicitudes de Ajax, desvanecimiento de menú, etc., el rendimiento de todos los marcos que he usado es suficiente, y la codificación en sí misma se acelera a su vez.

+0

Te doy la respuesta ya que técnicamente estás en lo cierto :) Sin embargo, sería bueno ver algunos estudios. – Wolfe

+1

http://www.amazon.com/Supercharged-JavaScript-Graphics-canvas-jQuery/dp/1449393632/ref=sr_1_1?ie=UTF8&qid=1344868973&sr=8-1&keywords=javascript+graphics en este libro son algunos de estos estudios usted está buscando – philipp

+0

¡Muchas gracias :) – Wolfe

0

este es un estudio basado en el rendimiento con js library y venilla js para Añadir texto

http://www.learningjquery.com/2009/03/43439-reasons-to-use-append-correctly

y lo que puedo decir, utilizando venilla Javascript es siempre más rápido que realizar algo con la ayuda de las bibliotecas. pero si quieres ahorrar tiempo para el desarrollo de algo, que será bueno si se utiliza alguna biblioteca que eres bueno.

+0

¿puedo saber el motivo del voto a favor? – Shreedhar

+2

El reclamo sobre el JavaScript vainilla siempre es más rápido. Las bibliotecas a menudo hacen optimizaciones que nunca considerarías si escribieras todo el código a mano, y la mayoría de las veces una biblioteca especialmente diseñada y probada en batalla para "X" va más rápido que tu propia implementación de "X" enrollada a mano. . –

+0

@JamesMcLaughlin no estoy diciendo siempre que debemos escribir venilla js, o no usemos bibliotecas js ¿verdad? – Shreedhar

1

Depende de e ntirely en la biblioteca. Sin embargo, para bibliotecas como jQuery probablemente no importe: el cuello de botella de rendimiento probablemente no sea jQuery, Google proporcione un jQuery alojado en CDN, por lo que ni siquiera tiene que afectar el tiempo de carga de la página y la facilidad de uso que jQuery ofrece. supera el impacto menor en el rendimiento. Las bibliotecas también pueden usar técnicas poco comunes o difíciles para aumentar el rendimiento, por lo que el uso de una biblioteca a veces puede ser incluso más rápido que lo que escribiría usted mismo. No hay una respuesta final realmente.

+0

Lo único que no me gusta del argumento de Google CDN es que la gente parece asumir que ya está en todos los sitios y que está implementado de esa manera y también para la misma versión de la misma biblioteca ... simplemente todo parece tan tonto. Estoy seguro de que ahorra tiempo para algunos, pero no se puede saber si es la primera carga o no y definitivamente no niega por completo los tiempos de carga de la página. – Wolfe

1

Aunque no sea una respuesta directa a su pregunta, mi respuesta a esta pregunta: "What are some empirical technical reasons not to use jQuery?" y otras respuestas y comentarios pueden ser interesantes para su investigación ya que muchos hablan sobre problemas de rendimiento al usar y no usar bibliotecas JavaScript y marcos. Espero que ayude.

Cuestiones relacionadas