2022 - Enter The Matriks : retrouver l'utilisation de la mémoire par les scripts python

Hello,

J'en ai mare d'envoyer mes scripts au front se faire dézinguer par le le server de validation ;(, le problème c'est que j'ai sais pas comment tester l'utilisation de la mémoire de mon coté en local pour savoir si les modifications que j'apporte me font gagner de l'espace mémoire.

Avez vous des suggestions/aide pour avoir cette information en local de notre coté sur nos propres exemples (en python) ?

Merci d'avance !

11 nov. 2021 à 13:40:39 Modifié le 11 nov. 2021 à 13:41:01

Salut, je te conseillerais de regarder du côté de la commande ulimit (si tu es sous linux), qui te permet de poser des limites mémoires à ton prgm.
Tu fais "man ulimit" pour voir comment ça marche ou tu regardes sur internet, ça n'est pas très compliqué.
Par contre, ça prend aussi en compte la mémoire qui est allouée pour le terminal en cours d'utilisation, qu'il faut donc que tu l'additionne à la limite de ton prgm.
Le pb c'est aussi que python consomme bcp de mémoire, du coup je pense que tu peux multiplier par 20 la limite mémoire par rapport à celle autorisée dans le sujet.
Et enfin pour que tu puisse faire des tests corrects il faut que tu est des exemples d'entrées assez grand.

Sinon tu peux regarder ces questions sur stackoverflow, pour avoir les infos d'utilisation mémoire de ton prgm :
https://stackoverflow.com/questions/276052/how-to-get-current-cpu-and-ram-usage-in-python
https://stackoverflow.com/questions/938733/total-memory-used-by-python-process

Après si tu te fais dézinguer c'est sans doute que tu as une complexité en mémoire trop élevé, et du coup je te conseillerais de revoir le design de base de ton algo ;)

Sinon tu peux aussi télécharger le logiciel qui est utilisé par prologin pour faire les tests, comme ça tu ne te compliques pas trop la vie. Tu peux tout trouver sur github (github.com/prologin). En particulier, le logiciel qui s'occupe de limiter la mémoire et le temps d'exécution (entre autre) s'appelle camisole.

Répondre au sujet

Vous devez vous enregistrer ou vous connecter pour poster des messages.