4 points par xguru 2024-12-26 | 1 commentaires | Partager sur WhatsApp
  • JRuby combine la productivité de Ruby avec la performance de la JVM, et JBang fournit une gestion des dépendances et un environnement d'exécution simples
    • En combinant ces deux outils, il est possible d’exploiter conjointement des bibliothèques Ruby et Java
    • JBang : un outil permettant d’exécuter simplement des programmes Java/Kotlin/Groovy et de gérer les dépendances
    • JRuby : une implémentation de Ruby fonctionnant sur la JVM, associant la productivité de Ruby à la performance de la JVM
  • La gestion des dépendances nécessaire pour utiliser des bibliothèques Java dans JRuby (Gradle/Maven, etc.) est complexe et difficile
    • Nous avons décidé d’expérimenter une méthode qui utilise JBang pour gérer simplement les dépendances et exécuter des scripts JRuby
  • Configuration de l’environnement basé sur Docker
    • Utilisation d’une image Docker basée sur Amazon Corretto (JDK)
    • Téléchargement et installation de JRuby et de JBang, puis ajout au PATH
    • Inclusion des Ruby gems et des bibliothèques Java via un Dockerfile
  • Rédaction d’un simple RunJRuby.java : gestion des dépendances Java via JBang et exécution d’un script JRuby
    • Configuration de l’environnement d’exécution JRuby avec ProcessBuilder
    • Passage des dépendances Java à JRuby via la configuration de CLASSPATH
  • Utilisation de Javalin (un framework web Java) avec JRuby pour construire une API REST
    • Ajout de l’authentification JWT et implémentation d’une API CRUD intégrée à SQLite
    • Utilisation de bibliothèques Java performantes pour les tâches HTTP et DB, tandis que la logique métier est gérée en Ruby
  • Résultats des tests de performance
    • Test de performance des temps de réponse avec l’outil Apache Benchmark (ab) sur 1500 requêtes (25 requêtes concurrentes)
    • Résultat : 95 % des requêtes ont été traitées en moins de 10 ms
    • Utilisation de la version la plus récente de Javalin et des Virtual Threads pour offrir de hautes performances
  • La combinaison des avantages de Ruby et Java satisfait à la fois la productivité et la performance
  • Voir le dépôt GitHub : jbang-jruby-javalin

1 commentaires

 
clickin 2024-12-26

Cette fuite mémoire fatale de Java+Groovy
J'ai déjà vu des cas où une memory leak se produit dans certaines conditions quand on exécute des scripts sur la JVM, je me demande ce qu'il en est pour JRuby.