Question

L'inlinaison des appels de fonction JavaScript accélère l'exécution et réduit également la taille du code après gzipping, comme décrit dans cet article:

http://blog.calyptus.eu/seb/2011/01/javascript-call-performance-just-inline-it/

Cependant, je ne trouve pas un outil qui traite automatiquement un fichier source JS et incline tous les appels de fonction inlinables (ou mieux, sélectionnés). Le compilateur de fermeture de Google effectue un peu d'inclinaison, mais pas toujours, et il n'est pas non plus configurable.

Merci d'avance!

Était-ce utile?

La solution

Laissez le jit comprendre des choses comme l'inclinaison de vous. L'inlinaison peut facilement aggraver les performances en tuant les performances du cache.

De plus, à moins que vous n'ayez identifié les goulots d'étranglement réels, faire une optimisation prématurée comme celui-ci en vaut la peine.

Autres conseils

Je crois à peine que cette "technique" accélère tout temps d'exécution. Du moins pas dans un scénario du monde réel. Le blog pourrait être juste sur la taille du code et le gzipping tho.

Quoi qu'il en soit, je ne pense pas qu'une minification / compresseur JavaScript le fera beaucoup. La raison est simple et très évidente dans l'exemple fourni. En remplaçant l'appel de fonction par le code de fonction réellement, vous définissez des choses dans un autre contexte. Cela pourrait finir par très mal. Et si la fonction parent (-context) déclare déjà et utilise déjà une variable nommée foo. Si la même variable est utilisée dans l'autre fonction, vous pouvez écraser cela et provoquer des erreurs.

Pire encore s'il y a une certaine utilisation de try/catch ou eval Blocks qui crée un contexte supplémentaire avec une "portée dynamique" soigneusement exprimée (qui n'est en fait pas disponible dans ECMA-Script). Cependant, dans ce scénario, il est à peu près impossible pour une implémentation JIT ou JavaScript pour optimiser quoi que ce soit.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top