Switchelven - Qwice

Hello world, Ça fait un moment que je n’ai pas partagé de bride de ma vie de dev. Alors on va parler de dépendances, de performance et de mise à jour de langages :) 

Switchelven - Qwice 2025

Hello world, Ça fait un moment que je n’ai pas partagé de bride de ma vie de dev. Alors on va parler de dépendances, de performance et de mise à jour de langages :)  <p><span>Cela fait quelque temps déjà que j’ai pris l’habitude d’utiliser une librairie d’injection de dépendance en python (<u>https://python-dependency-injector.ets-labs.org/</u>). Une très bonne librairie (selon moi) pour gérer plus facilement les dépendances de projets en python et qui m’a toujours beaucoup servi depuis que je l’ai découverte.</span></p><p><span>Pour le projet de Prorizon, c’est donc tout naturellement que j’ai intégré cette librairie dans ma valise.<br />Le projet avançant, nous entrons dans les premières phases de tests. Faire tourner un système de prédiction peut s’avérer lent. C’est normal. Enfin jusqu’à un certain point…. </span></p><p><span><br />Premier test, sur 1 référence et seulement quelque centaine de lignes d’historique de données, j’attend. 1h, 3h, 8h, 2 jours…. Bon il est évident qu’un problème de performance plane. Nous commençons donc à rechercher de potentielles sources de ce problème: est-ce que cela vient de l’utilisation de process asynchrone mal gérer ? Peut être un problème d’ingestion des données (via une liste ou un générateur), ou peut être trop de données d’un coup (mais peu probable vu le volume actuel). Nous testons donc de remettre les process de traitement en synchrone, de récupérer les données bloc à bloc plutôt qu’en une seule fois, remplacer les générateurs par des listes, ou l’inverse…. Rien n’y fait. </span></p><p><span><br />A ce moment, je recherche les différences entre ce projet et d'autres projets que j’avais déjà réalisés. Je retire peu à peu des dépendances inhabituelles, rien. Finalement, une différence qu’il me reste est la version de python (m’étant mis à jour sur la dernière version entre temps). Je cherche donc dans les documentations des différentes librairies pour voir si un problème serait connu sur ce sujet, rien. Mais en cherchant un peu plus loin, j’ai constaté les informations relatives aux versions de python supportées par les différentes versions des librairies utilisées.</span></p><p><span><br />Nouveau test en retirant une à une les librairies indiquées comme non compatibles avec la version de python utilisée. Et bingo, à force de test, nous avons constaté que la librairie n’était effectivement pas compatible avec la version de python à l’époque et que si l’injection fonctionnait correctement, cela impacter considérablement les performances de l’intégralité des programmes (tests fait sur notre projet et sur des APIs simplifier).<br />Je n’ai pas encore eu le temps de vérifier si une mise à jour était venue corriger cela, devant avancer sur le projet.</span></p><p><span><br />Bref, un peu de temps de perdu pour pas grand chose, et un peu triste d’avoir dû revoir mon système de gestion de dépenses pour le moment. </span></p><p><span>Aller, ciao les geeks :)</span></p>

Animation