Groovy sera livré avec l'un des analyseurs JSON les plus rapides sur la JVM selon Rick Hihgtower, le consultant et auteur omniprésent. Dans son article sur l'évaluation des performances de sérialisation JSON, Hightower prétend que le support JSON de Groovy et l'analyseur Boon est de 3 à 5 fois plus rapide que l'analyseur JSON actuel pour l'analyse des chaînes et des tableaux de caractères, et de 2 à 4 fois pour l'analyse des tableaux d'octets.
Le dévelopeur russe Andrey Bloschetsov a créé le projet Github json-benchmarks dans le but d'évaluer comparativement les performances des analyseurs populaires de la JVM. Le projet compare les performances de Jackson, Gson, Boon et Groovy 2.3.
Pour tester chaque analyseur, des données avec de grandes différences structurelles ont été sélectionnées :
- citys - un grand tableau (29 470 éléments) d'objets simples. La représentation json compacte prend à peu près 2,5 Mo.
- repos.json - un tableau de 4 objets avec une structure complexe. La représentation json compacte prend à peu près 342,8 ko.
- user.json - un objet unique avec une structure complexe. La représentation json compacte prend à peu près 4,2 ko.
- response.json - un objet unique avec une structure simple. La représentation json compacte prend à peu près 425 o.
La sérialisation a été testée avec deux variantes :
- pojo - les objets sont présentés comme des objets POJO.
- maplist - les objets sont présentés comme des dictionnaires.
La désérialisation a été seulement testée avec un seul cas d'utilisation de transformation : de String vers Map.
La compétition s'est soldée par la victoire de Boon, Groovy 2.3 juste derrière, Jackson en troisième position et Gson bon dernier.
Pour aller plus loin dans ce que cela signifie pour Groovyn, InfoQ s'est rapproché de Guillaume Laforge, le Chef de Projet Groovy chez Pivotal.
Interview réalisée fin avril 2014 :
InfoQ : Qu'est-ce qui vous a décidé de dupliquer Boon et de l'utiliser dans Groovy 2.3 ?
J'ai suivi le travail de Rick Hightower sur le framework Book et j'ai été impressionné par la vélocité qu'il obtenait avec sa technique d'analyse du JSON. Je l'ai donc contacté pour lui demander s'il était possible de reprendre cette technique d'analyse dans notre support JSON que j'avais développé il y a quelques années pour Groovy. Rick a gentiment proposé son aide, dupliquant Book pour en faire la technologie d'analyse de nos analyseurs JSON. Et les résultats publiés dans ses évaluations sont pour le moins impressionnantes.
InfoQ : L'analyse JSON dans Groovy 2.3 est de combien plus rapide par rapport aux versions précédentes ?
Bien évidemment, cela dépend grandement du type de message JSON avec lequel vous travaillez, de comment vous mesurez, etc. Mais de ce que je comprends des évaluations, vous pouvez supposer que l'analyse JSON de Groovy (et donc les analyseurs Boon de Rick) est 3 à 4 fois plus rapide que les autres librairies disponibles actuellement.
InfoQ : Quand est-ce que les utilisateurs de Grails pourront bénéficier de Groovy 2.3 ?
Notre plan est de livrer Groovy dans une semaine à peu près, de telle sorte que Grails 2.4 puisse intégrer Groovy 2.3 pour sa version attendue pour mi-mai. Le deuxième jalon de Grails 2.4 livré cette semaine intègre déjà Groovy 2.3-beta-2. C'est donc uniquement une histoire de semaines avant que les utilisateurs de Grails puissent bénéficier de Groovy 2.3.