Acabo de ver que hay un compilador Ruby Parrot
llamado Cardinal
, que puede crear código para ejecutar en Parrot
, que es una máquina virtual que puede ejecutar byte-code. ¿Cómo se compila el rendimiento de Ruby o cualquier lenguaje y se ejecuta allí porque, por ejemplo, Ruby probablemente no tenga código de bytes precompilado. ¿Se puede ejecutar más rápido en Parrot
? Python probablemente estará mejor corriendo como está porque tiene .pyc.¿Se ejecutará Ruby u otro idioma más rápido en Parrot?
Respuesta
Parrot
desarrollo aún no se ha centrado en la optimización. La hoja de ruta siempre mencionó esto en la versión 3 o 4 (Parrot
se encuentra actualmente en la versión 2.9).
Se está produciendo una gran rama de refactorización que incluye arrancar el JIT y reemplazarlo por uno nuevo (refs: Lorito & JITRewrite).
Los frutos de esto deberían empezar a aparecer como parte de Parrot 3.0, que creo que se debe entregar la próxima primavera.
actualización
Un probable roadmap ha sido publicado por un desarrollador loro en su blog. He aquí un resumen de lo que él cree que los próximos 3 años tal vez:
- 3,0 - Nuevo colector de basura
- 3.3 - Lorito prototipo
- 4.0 - Nuevo objeto metamodelo
- 5.0 - Nueva JIT
- 6.0 - Nuevo sistema de concurrencia
/I3az/
Editar: Estaba viendo resultados más antiguos cuando newer ones are available. A partir de los puntos de referencia más recientes, que todavía son bastante antiguos, el loro supera a la vanilla vm en algunas pruebas, pero es más lento en otras. Algunas pruebas que ni siquiera puede completar.
yarv es el rey de la velocidad de manos libres para el rendimiento de rubí.
"Nuevos" resultados son de 2007? : -/ –
Debo admitir que deja margen para la mejora. – SingleNegationElimination
- 1. cómo aprender Drools u otro motor de reglas rápido
- 2. Nuevo proyecto: Ruby on Rails o Symfony2 (u otro marco)
- 3. Parrot - ¿Puedo usarlo? ¿Y cómo?
- 4. ¿Cómo puede una implementación de un idioma en el mismo idioma ser más rápido que el idioma?
- 5. Python, PowerShell u otro?
- 6. ¿Cómo se hace Python/PostgreSQL más rápido?
- 7. Matplotlib correr más rápido
- 8. Cómo analizar varias fechas desde un bloque de texto en Python (u otro idioma)
- 9. ¿Qué es exactamente Parrot?
- 10. Determinar si se está compilando en Windows u otro sistema
- 11. IPC más rápido en PHP
- 12. ¿Qué es más rápido ASP.NET MVC o Ruby On Rails
- 13. ¿Hay alguna forma de configurar nginx (u otro proxy inverso rápido) dinámicamente?
- 14. ¿Cuál es más rápido para pequeños proyectos web: MySQL u Oracle?
- 15. ¿Se ejecuta el código C más rápido?
- 16. ¿Ruby on Rails es MUCHO más rápido para desarrollar código?
- 17. Generando código para otro idioma en Haskell
- 18. Prevenir otro idioma excepto inglés en EditText
- 19. Generador de permutación más rápido
- 20. Lenguaje más rápido para los bucles FOR
- 21. 'php pyrus.phar' no se ejecutará
- 22. mariscal vuelca más rápido, cPickle carga más rápido
- 23. Tamaño de memoria de un hash u otro objeto?
- 24. cuando es Java más rápido que C++ (o cuando JIT es más rápido que precompilado)?
- 25. WPF La aplicación DotNET se ejecutará en modo de depuración, pero .EXE no se ejecutará
- 26. Izquierda JOIN más rápido o Inner Join más rápido?
- 27. ¿Qué es más rápido? Comparación o asignación?
- 28. ¿Cómo hacer que JVM arranque más rápido?
- 29. ¿Es Linq más rápido, más lento o lo mismo?
- 30. ¿Se ejecutará WPF en XP y Vista?
JRuby está tomando las mismo enfoque, compilando bytecode Ruby to Java. – Thilo