Lenguaje de scripting a lenguaje compilado o lenguaje compilado puro, ¿cuál es más rápido?[cerrado]

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

Pregunta

Recientemente codifiqué una aplicación en jruby, creé un archivo .jar a partir de ella y la implementé en Tomcat.También leí un artículo sobre jruby que dice "Jruby: escalabilidad de Java y facilidad de Ruby".

Aquí quiero saber, ¿una codificación como esta en jruby ofrece la misma escalabilidad y rendimiento que la codificación directa en Java?

De esta manera, usar la extensión Ruby para ejecutar código C en Ruby proporciona el mismo rendimiento que codificar directamente en C.

Gracias

¿Fue útil?

Solución

(Descargo de responsabilidad:Puede que esta no sea una respuesta completa, pero era demasiado larga para un comentario).

Aunque no tengo casi ninguna experiencia con la implementación de JRuby en particular, los lenguajes dinámicos implementados en la JVM tienen sus limitaciones en términos de la velocidad que puede obtener en comparación con la que obtendría si codificara directamente en Java.

Por lo que tengo entendido, esto proviene de las compensaciones de las implementaciones del lenguaje del cliente (JRuby, Clojure, Jython, etc.) tienen que hacer, para "simular" su funcionamiento interno en la plataforma anfitriona (en este caso el JVM).Tal vez en los escenarios más comunes la diferencia de rendimiento no sea tan mala ya que las optimizaciones HotSpot de JVM entran en acción, pero cuando se trata de obtener un rendimiento de código similar al de Java, es posible que deba profundizar en los detalles de la implementación del lenguaje para poder evitarlo. algunas de sus limitaciones.

En el caso del Rubí extensiones en C, lo que realmente estás ejecutando es código nativo (lenguaje de máquina) que fue codificado originalmente en C, pero que puedes llamar desde tu código Ruby.al correr JRuby código, el lenguaje en el que estás programando es Rubí, que debe compilarse para Java código de bytes, que se ejecuta en el JVM, lo que se traduce en operaciones en el sistema operativo nativo.Algo análogo a rubí/c seria en este caso JRuby/Java, eso sería llamar a algunos Java código, que fue escrito originalmente en Java de tu JRuby programa.

EDITAR

Este discusión menciona algunos de los puntos que he incluido anteriormente y una explicación más detallada sobre algunos otros puntos interesantes.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top