Si desea ver cómo los diferentes en el navegador motores de JavaScript apilan, instalar Safari 4 (sí que se ejecuta en windows ahora también!), Chrome V8, Firefox 3.5, y el IE 8 (si está en windows) y ejecuta el punto de referencia:
http://www2.webkit.org/perf/sunspider-0.9/sunspider.html
creo que dijeron puntiagudo anterior, la El nuevo Firefox 3.5 usa TraceMonkey que también se compila para intermediar código sobre la marcha usando algunos f orm de JIT. Por lo tanto, debería compararse con V8 de manera un tanto favorable. Al menos no será 10 veces más lento que V8 como lo fue Firefox 3 SpiderMonkey (sin JIT).
Para mí ... safari 4.0.3 era 2.5 veces más rápido que Tracemonky en Firefox 3.5.3 en Win XP. IE8 fue mucho más lento. No tengo Chrome instalado en este momento.
No sabe acerca de la compilación de Rhino a bytecode de java. Si todavía está interpretando las características dinámicas de Javascript, como poder agregar atributos a instancias de objetos en tiempo de ejecución (ejemplo obj.someNewAttribute = "someValue", que está permitido en Javascript) ...No estoy tan seguro de que esté completamente "compilado" para bytecode, y es posible que no obtengas un mejor rendimiento que no sea necesario compilar a partir del texto del código fuente de Javascript cada vez que se ejecute tu Javascript. Recuerde que Javascript permite una sintaxis muy dinámica como eval ("x = 10; y = 20; z = x * y"); lo que significa que puede construir cadenas de código que se compilan en el tiempo de ejecución. Es por eso que creo que Rhino sería interpretado/compilado en modo mixto, incluso si compiló código byte de JVM.
La JVM sigue siendo un intérprete, aunque una muy buena con el soporte de JIT. Así que me gusta pensar en Rhino-on-JVM como 2 capas de intérprete (intérprete-en-intérprete) o intérprete^2. Mientras que la mayoría de sus otros motores Javascript están escritos en C, y como tales deberían interpretarse más como intérprete^1. Cada capa de intérprete puede agregar una degradación de rendimiento de 5-10x en comparación con C o C++ (ref. Perl o Python o Ruby, por ejemplo), pero con JIT, el rendimiento puede ser mucho menor del orden de 2-4x. Y la JVM tiene uno de los motores JIT maduros más robustos &.
Así que su kilometraje variará definitivamente y probablemente se beneficiaría de hacer algunos puntos de referencia serios si quiere una respuesta real para su aplicación prevista en su propio hardware & OS.
Rhino no puede ser demasiado lento, ya que sé que mucha gente lo está usando. Creo que su principal atractivo no es su velocidad, sino el hecho de que es fácil de codificar/ligero/incrustable/intérprete que tiene ganchos en las bibliotecas de Java, lo que lo hace perfecto para la creación de scripts/configuración/extensibilidad de su proyecto de software. Algunos editores de texto como UltraEdit incluso están incorporando Javascript como un motor de macro scripting alternativo. Todos los programadores parecen ser capaces de tropezar a través de JavaScript con bastante facilidad, por lo que es fácil de recuperar también.
Una de las ventajas de Rhino es que se ejecuta prácticamente en cualquier lugar donde se ejecute la JVM. En mi experiencia, tratar de hacer funcionar TraceMonkey o SpiderMonkey por separado para compilar & ejecutar desde la línea de comandos puede ser un poco doloroso en sistemas como Windows. Y la incrustación en su propia aplicación puede consumir aún más tiempo. Pero la recompensa por tener un lenguaje incrustado valdría la pena para un gran proyecto, en comparación con tener que "rodar tu propio" mini scripting solution si eso es lo que estás buscando hacer.
Hacer scripts con Rhino es muy fácil si tiene Java y el contenedor de rinocerontes, solo tiene que escribir su javascript y ejecutarlo desde la línea de comandos. Lo uso todo el tiempo para tareas simples.
Rhino puede compilar el código de bytes de Java. https://developer.mozilla.org/es/Rhino_JavaScript_Compiler – Thilo