[RESOLU] Optimisation performances dans une application de gestion API informations caméras de surveillance

Petit nouveau ! | 2 Messages

21 mars 2023, 15:36

Bonjour à tous,

J'ai récemment développé une application PHP qui interagit avec une API externe pour gérer des données sur des caméras de surveillance. L'application doit effectuer de nombreuses requêtes à cette API et manipuler les résultats pour les afficher sur le site.

Cependant, je constate que les performances sont assez médiocres, surtout lorsque le nombre de requêtes augmente. J'ai essayé d'utiliser des techniques de mise en cache, mais cela ne semble pas suffire pour résoudre le problème.

Je cherche des conseils pour optimiser les performances de mon application PHP. Voici quelques-uns de mes points de réflexion :

Comment puis-je optimiser la gestion des requêtes à l'API externe pour minimiser le temps d'attente et les ressources utilisées ?
Existe-t-il des techniques avancées de mise en cache pour réduire le nombre de requêtes à l'API externe ?
Quels sont les bons moyens de mettre en place un système de file d'attente ?

Je suis ouvert à toutes suggestions.
Dev PHP

Avatar du membre
Mammouth du PHP | 1609 Messages

21 mars 2023, 15:48

Salut, un peu compliqué de te donner des pistes sans avoir plus d'informations, des choses concrètes.

Quelle est cette API ? est ce que c'est un serveur intermédiaire entre ton serveur et les caméras ? ou est ce que chaque caméra dispose d'une API ?

Quelles types de données sont manipulées ? des données qui changent d'une requête à l'autre ? des données fixes qui ne changent que si un utilisateur change la donnée ?

Est ce que ce sont tes scripts qui sont trop gourmands ? est ce que c'est le serveur de l'API qui est trop lent ? Il faut identifier à quel niveau il y a un problème de performance.

La comme ça c'est trop vague pour proposer une quelconque amélioration.
Développeur web depuis + de 20 ans

Petit nouveau ! | 2 Messages

21 mars 2023, 16:54

Merci pour votre réponse. Voici quelques précisions qui, je l'espère, vous aideront à mieux comprendre mon problème :

L'API est un serveur intermédiaire entre mon serveur et les caméras de surveillance. Il gère l'authentification, l'accès aux flux vidéo et fournit des informations sur l'état des caméras et leurs paramètres.

Les données manipulées incluent les flux vidéo en temps réel, les métadonnées des caméras (par exemple, leur position, leur orientation, etc.), et les paramètres configurables par les utilisateurs, tels que la qualité vidéo, la fréquence d'image, etc. Les données peuvent changer en fonction des actions des utilisateurs ainsi que des différents mouvements détectés par les caméras.

Mes scripts PHP gèrent des métadonnées et des paramètres des caméras, tandis que les flux vidéo sont gérés directement par le navigateur des utilisateurs via un lecteur vidéo. Mon application doit effectuer plusieurs requêtes à l'API pour récupérer et mettre à jour ces données, ce qui entraîne une surcharge du serveur de l'API et de mon propre serveur.

Mon application doit attendre les réponses de l'API avant de pouvoir traiter et afficher les données, ce qui entraîne des délais pour les utilisateurs.
Dev PHP

Avatar du membre
Mammouth du PHP | 1609 Messages

21 mars 2023, 18:27

A priori ça va être compliqué d'améliorer ça étant donné qu'il y aurait un goulot au niveau du serveur de l'API.

A part faire la même chose avec moins de requêtes... la queue peut être intéressante pour certaines opérations surement mais elle fera pas aller l'API plus vite.

Après à voir, mais si par exemple tu as un script qui fait une requête par caméra avec beaucoup de caméras, il vaudrait surement mieux que ton script soit lui même appelé une fois par caméra; ce genre de choses. Avoir une interface un peu plus "dynamique" avec de l'ajax au lieu d'avoir des rafraichissements complets de la page. Mais bon la pareil sans voir vraiment ce qui est fait tout n'est qu'hypothèses.
Développeur web depuis + de 20 ans