2012-08-13 4 views
7

Est-ce que quelqu'un sait si des études ont montré que les performances de l'utilisation des bibliothèques javascript (autres que le temps de téléchargement évident) sont inférieures à celles d'un javascript basique? Les bibliothèques sont tellement énormes ces jours-ci et j'étais curieux. De mon diplôme en informatique, il semble qu'il devrait avoir une croissance n. (en d'autres termes, linéaire). En termes d'informatique, cela n'est pas menaçant, mais comment cela affecte-t-il réellement le temps de chargement de la page et les performances de la page en millisecondes? Je sais que CPU est un problème, RAM, et ainsi de suite. Mais y a-t-il des tests qui permettent d'évaluer ce genre de choses? Je sais qu'un autre facteur est que les bibliothèques sont souvent optimisées pour faire à peu près la même chose que le codage à la main d'une manière moins optimisée, mais les bibliothèques ont aussi un surcoût et toutes ces fonctionnalités ne seront pas utilisées.Rétrogradation des performances des bibliothèques javascript

Edit: J'ai trouvé ce qui semble répondre à ma question à fond, même si elle a commencé à autre chose: When to use Vanilla JavaScript vs. jQuery?

« Comme les commentaires sont prompts à souligner (et je suis d'accord avec 100% Les énoncés ci-dessus se réfèrent au code d'analyse comparative.Une solution JavaScript «native» (en supposant qu'elle soit bien écrite) surpasse une solution jQuery qui accomplit la même chose dans presque tous les cas (j'aimerais voir un exemple autrement). accélérer le temps de développement, ce qui est un avantage important que je ne veux pas minimiser, car il facilite la lecture, le code facile à suivre, ce qui est plus que certains développeurs. re capable de créer par ses propres moyens. À mon avis, alors, la réponse dépend de ce que vous essayez d'atteindre. Si, comme je l'ai supposé en vous basant sur votre référence aux performances, vous recherchez la meilleure vitesse possible de votre application, l'utilisation de jQuery entraîne des frais généraux chaque fois que vous appelez $(). Si vous recherchez la lisibilité, la cohérence, la compatibilité croisée, etc., il y a certainement des raisons de préférer jQuery au JavaScript «natif».

+0

C'est une question tellement générale que je ne pense pas qu'on puisse y répondre. Les frais généraux sont différents pour chaque bibliothèque, et cela dépend de ce que vous faites avec eux. –

+0

Peut-être que oui, mais j'espérais que quelqu'un connaissait des études effectuées pour tester différents types d'utilisations qui essaieraient de montrer une image plus grande. Mon intuition est que les bibliothèques ont toujours des frais supplémentaires mais rendent le développement et la maintenance moins coûteux. – Wolfe

+0

Je pense que vos hypothèses sur l'utilisation d'une bibliothèque affectent les performances sont fondamentalement faux, surtout quand vous dites des choses comme "aussi les bibliothèques ont des frais généraux et toutes les fonctionnalités ne seront pas utilisées". Si une bibliothèque fournit une fonction et que vous utilisez cette fonction, elle ne sera pas plus lente que si cette fonction se trouvait dans votre propre code source. Si la bibliothèque fait aussi d'autres choses, la présence de la fonctionnalité inutilisée ne va pas ralentir votre code, bien que cela puisse ajouter quelques K supplémentaires à charger depuis le serveur. –

Répondre

1

C'est une bonne question! À côté du temps de téléchargement de la bibliothèque elle-même, la plupart des frameworks ne font pas grand-chose, ce qui signifie qu'ils ne retardent pas l'affichage de la page ou quelque chose comme ça.

La méthode $ .css de JQuery, qui facilite le style des éléments, peut devenir un goulot d'étranglement au niveau des performances si vous avez besoin de déclencher cela très souvent et si vous travaillez directement sur l'objet style est beaucoup plus rapide.

Je suis d'avis qu'il vaut mieux en faire plus avec du javascript simple, plus il faut gagner en performance. Pour des choses normales comme les requêtes ajax, le fading de menu et ainsi de suite, la performance de tous les frameworks que j'ai utilisés est suffisante, et le codage lui-même accélère à son tour.

+0

Vous donner la réponse puisque vous avez techniquement raison :) Il serait bon de voir quelques études cependant. – 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 dans ce livre sont quelques unes de ces études vous cherchez – philipp

+0

Grand merci :) – Wolfe

0

Voici une étude qui a été faite en fonction des performances avec js library et venilla js for ajouter du texte

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

et je peux dire, en utilisant venilla javascript est toujours plus rapide que d'effectuer quelque chose avec l'aide des bibliothèques. mais si vous voulez gagner du temps pour développer quelque chose, ce sera bon si vous utilisez certains bibliothèque que vous êtes bon

+0

puis-je connaître la raison du downvote? – Shreedhar

+2

La revendication sur JavaScript vanilla toujours plus rapide. Les bibliothèques font souvent des optimisations que vous n'auriez jamais envisagées si vous écriviez tout le code à la main, et le plus souvent une bibliothèque spécialement conçue et testée pour X est plus rapide que votre propre implémentation de X . –

+0

@JamesMcLaughlin Je ne dis pas toujours que nous devrions écrire venilla js, ou ne pas utiliser les bibliothèques js droite? – Shreedhar

1

Cela dépend e complètement sur la bibliothèque. Cependant, pour les bibliothèques comme jQuery cela n'a probablement pas d'importance: le goulot d'étranglement des performances n'est probablement pas jQuery, Google fournit une jQuery hébergée sur CDN, donc il n'a même pas besoin d'impact sur le temps de chargement et la facilité d'utilisation de jQuery l'emporte sur l'impact mineur sur les performances. Les bibliothèques peuvent également utiliser des techniques inhabituelles ou difficiles pour améliorer les performances. Ainsi, l'utilisation d'une bibliothèque peut parfois être plus rapide que ce que vous écrivez vous-même. Il n'y a pas vraiment de réponse définitive.

+0

La seule chose que je n'aime pas à propos de l'argument google CDN, c'est que les gens semblent supposer qu'il existe déjà sur tous les sites et qu'il est implémenté de cette manière et aussi pour la même version de la même bibliothèque. semble si bête. Je suis sûr que cela fait gagner du temps pour certains, mais vous ne pouvez pas savoir si c'est la première charge ou non et cela n'annule pas complètement les temps de chargement de la page. – Wolfe

1

Bien que n'étant pas une réponse directe à votre question, ma réponse à cette question: "What are some empirical technical reasons not to use jQuery?" et d'autres réponses et commentaires il peut être intéressant pour votre recherche car beaucoup d'entre eux parlent de problèmes de performance de l'utilisation et non cadres. J'espère que ça aide.