Du langage de script au langage compilé ou au langage compilé pur, lequel est le plus rapide ?[fermé]

StackOverflow https://stackoverflow.com//questions/23044498

Question

Récemment, j'ai codé une application dans jruby, j'ai créé un fichier .jar et je l'ai déployé dans Tomcat.J'ai également lu un article sur jruby qui dit "Jruby - évolutivité de Java et facilité de Ruby".

Ici, je veux savoir si un codage comme celui-ci dans jruby offre la même évolutivité et les mêmes performances que le codage direct en Java ?

Juste comme ça, l'utilisation de l'extension Ruby pour exécuter du code C dans Ruby donne les mêmes performances que le codage direct en C.

Merci

Était-ce utile?

La solution

(Clause de non-responsabilité:ce n'est peut-être pas une réponse complète mais c'était trop long pour un commentaire)

Bien que je n'aie pratiquement aucune expérience de l'implémentation de JRuby en particulier, les langages dynamiques implémentés sur la JVM ont leurs limites en termes de vitesse que vous pouvez obtenir par rapport à ce que vous obtiendriez si vous codiez directement en Java.

D'après ce que j'ai compris, cela vient des compromis entre les implémentations du langage client (JRuby, Clojure, Python, etc.) doivent faire, afin de "simuler" leur fonctionnement interne sur la plateforme hôte (en l'occurrence le JVM).Peut-être que dans les scénarios les plus courants, la différence de performances n'est pas si grave puisque les optimisations HotSpot de la JVM entrent en jeu, mais lorsqu'il s'agit d'obtenir des performances de code de type Java, vous devrez peut-être vous plonger dans les détails de l'implémentation du langage afin de contourner certaines de ses limites.

Dans le cas du Rubis extensions dans C, ce que vous exécutez réellement est du code natif (langage machine) qui a été initialement codé dans C, mais que vous pouvez appeler depuis votre code Ruby.Lors de l'exécution JRuby code, le langage dans lequel vous programmez est Rubis, qui doit être compilé pour Java bytecode, qui s'exécute sur le JVM, ce qui traduit cela en opérations dans le système d'exploitation natif.Quelque chose d'analogue à Rubis/C serait dans ce cas JRuby/Java, ce serait appeler certains Java code, qui a été initialement écrit en Java de ton JRuby programme.

MODIFIER

Ce discussion mentionne certains des points que j'ai inclus ci-dessus et une explication plus détaillée sur certains autres points intéressants.

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