IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Calcul scientifique Python Discussion :

Limiter le nombre d'execution par seconde d'une fonction [Python 3.X]


Sujet :

Calcul scientifique Python

  1. #1
    Membre à l'essai
    Homme Profil pro
    Lycéen
    Inscrit en
    Octobre 2018
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Octobre 2018
    Messages : 11
    Points : 11
    Points
    11
    Par défaut Limiter le nombre d'execution par seconde d'une fonction
    Bonjour,
    J'aimerais limiter le nombre l'exécution d'une fonction, pour limiter le nombre de calcul par seconde. Je veux faire un TPS pour limiter des calculs qui nécessitent une temporisation (calcul de forces en temps réel).
    Existe-t-il un module qui fais ça ?

    Merci !

  2. #2
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 241
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 241
    Points : 36 698
    Points
    36 698
    Par défaut
    Salut,

    Il faut le programmer en ajoutant un time.sleep(...) entre les appels successifs à la fonction.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  3. #3
    Membre à l'essai
    Homme Profil pro
    Lycéen
    Inscrit en
    Octobre 2018
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Octobre 2018
    Messages : 11
    Points : 11
    Points
    11
    Par défaut
    J'y ai pensé, mais le calcul est très rapide, et le TPS serait de l'ordre des 40 TPS.
    et puis, j'aimerais que le temps soit très précis, il faudrait que time.sleep() aie une précision à la ms près et si les calculs étaient ralentis pour quelque raison, le sleep attendrait trop de temps...

  4. #4
    Membre éclairé
    Homme Profil pro
    BTS SN IR
    Inscrit en
    Mai 2017
    Messages
    513
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 24
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : BTS SN IR

    Informations forums :
    Inscription : Mai 2017
    Messages : 513
    Points : 700
    Points
    700
    Par défaut
    Citation Envoyé par anat3000 Voir le message
    si les calculs étaient ralentis pour quelque raison, le sleep attendrait trop de temps...
    Vous pouvez prendre le temps au début de la fonction, ajouter x secondes puis à la fin de votre fonction vous n'avez plus qu'à attendre temps du début + x seconde - temps actuel, bien sur si le résultat est négatif pas la peine d'attendre, vous êtes déjà en retard

    (quand je parle de secondes je ne parle pas forcement d'un entier, même s'il est vrai qu’appeler 0,05 un nombre est inexact)

  5. #5
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 241
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 241
    Points : 36 698
    Points
    36 698
    Par défaut
    Citation Envoyé par anat3000 Voir le message
    J'y ai pensé, mais le calcul est très rapide, et le TPS serait de l'ordre des 40 TPS.
    et puis, j'aimerais que le temps soit très précis, il faudrait que time.sleep() aie une précision à la ms près et si les calculs étaient ralentis pour quelque raison, le sleep attendrait trop de temps...
    Appeler une fonction qui dure quelques millisecondes 40 fois par secondes, çà se teste et normalement, si vous avez un PC "normal" vous devriez y arriver.

    Après pour ce qui est de la précision sans un OS temps réel et en programmant avec Python... techniquement, c'est impossible (sauf peut être avec micropython sur un microcontrôleur).

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  6. #6
    Membre à l'essai
    Homme Profil pro
    Lycéen
    Inscrit en
    Octobre 2018
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Octobre 2018
    Messages : 11
    Points : 11
    Points
    11
    Par défaut
    Euh... Oui, c'est pas faux. Il faut que je voie si les ms en trop affectent les calculs (qui dépendent du temps exécution du calcul précédent).

  7. #7
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 241
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 241
    Points : 36 698
    Points
    36 698
    Par défaut
    Citation Envoyé par anat3000 Voir le message
    Euh... Oui, c'est pas faux. Il faut que je voie si les ms en trop affectent les calculs (qui dépendent du temps exécution du calcul précédent).
    Vous pouvez même les soustraire au délai d'attente avant l'exécution suivante (ce qui suppose mesurer ce temps d'exécution).

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  8. #8
    Membre à l'essai
    Homme Profil pro
    Lycéen
    Inscrit en
    Octobre 2018
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Octobre 2018
    Messages : 11
    Points : 11
    Points
    11
    Par défaut
    Oui, c'est ce que j'ai fait
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    import time
    a = time.time()
    ma_fonction()
    time.sleep(1/60-(time.time()-a))
    Je passe en résolu !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Diminuer le nombre d'éxecution par seconde d'UNE fonction
    Par Pricex3 dans le forum Général Python
    Réponses: 1
    Dernier message: 15/02/2018, 20h35
  2. [Toutes versions] Limiter le nombre de requêtes par seconde avec la fonction "Getcodesource" ?
    Par Dan.exe dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 01/10/2014, 19h23
  3. Comment limiter le nombre de requetes par secondes en curl
    Par altair8080 dans le forum Langage
    Réponses: 1
    Dernier message: 21/12/2013, 19h15
  4. Limiter le nombre de caractère par ligne d'un textarea
    Par rantanplan08 dans le forum Général JavaScript
    Réponses: 12
    Dernier message: 04/01/2006, 20h31
  5. IB et Nombre de requêtes par secondes
    Par lio33 dans le forum Débuter
    Réponses: 5
    Dernier message: 15/09/2005, 17h52

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo