Accélérer le décodage et l'encodage d'événements volumineux
Sur ma machine, un événement sur un composant ou une ressource est décodé en 100µs, et encodé en 75µs. En revanche, un événement sur un watcher avec 20000 dépendances (qui contient l'entité et fait donc environ 600ko), est décodé en 15ms et encodé en 5ms. Cela limite les performances d'axe à environ 50 événements par secondes dans un environnement avec des watchers qui surveillent de nombreuses entités.
Il faudrait améliorer les performances du décodage et de l'encodage. Je vois plusieurs pistes à évaluer :
- utiliser un générateur de code comme easyjson ou fastjson au lieu de la bibliothèque standard json, qui fait beaucoup d'opérations au runtime (il y a probablement d'autres options à évaluer)
- utiliser un autre format pour les envois d'événements entre moteurs, par exemple protobuf
- en dernier recours, ne plus stocker les entités et les alarmes dans les événements (c'est un peu dommage, ça complexifierait le code des moteurs)