Question

Si je comprends bien Groovy est typé dynamiquement, mais puisqu'il est presque un surensemble de Java, des informations de type statique peut éventuellement être fourni. Cela pourrait être utile si écrire quelque chose où seulement quelques parties sont des performances critiques, tout en évitant le frottement de l'utilisation des langues multiples. annotations de type pourraient être fournies que pour les performances des pièces critiques.

Quelle est la pénalité de performance pour l'utilisation de Groovy au lieu de Java dans les fonctions / classes où le Java comme sous-ensemble est utilisé et les annotations de type statique sont fournis?

Était-ce utile?

La solution

Déclarant types Groovy ne pas comme par magie à accélérer les choses. Il est toujours le code groovy et doit passer par la Réunion des Parties en cas quelque chose se dynamiquement changé. Vous ne recevez pas statique lien juste parce que vous avez donné des informations de type.

Pour les choses sensibles de performance que le code groovy est tout simplement pas assez rapide pour, vous devez écrire réel code java.

Cette question est très similaire à un précédent un où je a donné une réponse creuser dans le code binaire généré montrant comment quelque chose de frappe ne accélérer les choses.

Autres conseils

Vous pouvez également utiliser Groovy ++. Déposer le groovypp.jar dans le chemin de classe, et annoter un ensemble, une classe ou méthode avec @Typed. Le code annoté par la passe MOP, est donc presque aussi vite que le code Java.

Et même si vous ne déclarez pas un type, le code @Typed va déduire le type si possible au moment de la compilation.

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