Bienvenue, Invité. Merci de vous connecter ou de vous inscrire.
Avez-vous perdu votre e-mail d'activation ?

Auteur Sujet: [Clock/Time] Quelle précision quand on ne restart pas ?  (Lu 4440 fois)

0 Membres et 1 Invité sur ce sujet

Adrisaboss

  • Newbie
  • *
  • Messages: 14
    • Voir le profil
[Clock/Time] Quelle précision quand on ne restart pas ?
« le: Février 24, 2014, 01:59:37 pm »
Salut Laurent et tout le monde.

Je suis en train de faire une super simulation d'IA avec des réseaux de neurones et des algos génétiques, un sujet passionnant. Pour ce faire j'ai donc comme toujours pris ma lib préférée tout en un "O mon dieu c'est trop bien la SFML !".

Bref, les réseaux de neurones ayant besoin de beaucoup de temps pour devenir moins stupides, il n'est pas rare que je laisse tourner mon programme 3 jours à 1 semaine. Pour autant, j'essaye de maximiser le nombre d'updates/s, je dois donc garder une bonne précision au niveau du delta t pour fixer la framerate.

La question est donc : avec la super classe Clock, y a-t-il un overflow, ou un retour à 0, ou une perte de précision quand on laisse tourner le compteur trop longtemps ?
Je pourrais faire un restart mais si je peux conserver une clock qui m'indique l'instant du lancement, je suis pas contre.

Merci pour les infos, à la prochaine !
Adrien

PS : j'ai trouvé un super article traitant de la construction de la game loop. C'est pas un sujet qu'on croise souvent bien expliqué, et l'auteur conclut sur un super système qui rend indépendants l'affichage et l'update (entre autres propriétés bien pensées), je recommande vivement ! : http://www.koonsolo.com/news/dewitters-gameloop/

Laurent

  • Administrator
  • Hero Member
  • *****
  • Messages: 32504
    • Voir le profil
    • SFML's website
    • E-mail
Re : [Clock/Time] Quelle précision quand on ne restart pas ?
« Réponse #1 le: Février 24, 2014, 02:42:53 pm »
Aucune perte de précision, et tu peux tenir 5849 siècles avant d'avoir un overflow. Ca c'est pour SFML. En ce qui concerne les fonctions sous-jacentes de l'OS, ça devrait aller aussi.
Laurent Gomila - SFML developer

Adrisaboss

  • Newbie
  • *
  • Messages: 14
    • Voir le profil
Re : [Clock/Time] Quelle précision quand on ne restart pas ?
« Réponse #2 le: Février 24, 2014, 04:01:31 pm »
Arh, c'est balèze !

Et du coup en interne tu stockes juste les ms dans un int64 ? J'ai fait le calcul, du coup. C'est vrai qu'on est plutôt tranquille avec le 64 bits finalement.

Après, peut-être que si je laisse tourner ma simulation 5000 siècles mes bestioles auront développé une conscience et prendront le contrôle du monde. En gros si ya une révolution de l'IA à la Matrix, je dirai que c'est de ta faute. :P

Blagues à part merci beaucoup, & keep up the good work !

Laurent

  • Administrator
  • Hero Member
  • *****
  • Messages: 32504
    • Voir le profil
    • SFML's website
    • E-mail
Re : [Clock/Time] Quelle précision quand on ne restart pas ?
« Réponse #3 le: Février 24, 2014, 05:07:29 pm »
Je stocke même les microsecondes dans un entier 64-bits.
Laurent Gomila - SFML developer

christophedlr

  • Full Member
  • ***
  • Messages: 151
    • Voir le profil
    • E-mail
Re : [Clock/Time] Quelle précision quand on ne restart pas ?
« Réponse #4 le: Mars 18, 2014, 10:04:08 am »
Laurent, j'ai justement une question concernant les entier 64bits, comment on peut avoir un entier sur 64-bits avec des CPU 32-bits ?

Lynix

  • Sr. Member
  • ****
  • Messages: 403
    • Voir le profil
Re : [Clock/Time] Quelle précision quand on ne restart pas ?
« Réponse #5 le: Mars 18, 2014, 10:28:42 am »
Comment peux-tu compter jusqu'à six sur tes doigts alors que tu n'as que cinq doigts à ta main ? En utilisant deux mains ;)

De la même façon, un processeur 32 bits utilisera deux registres 32 bits pour représenter et calculer un nombre 64 bits.

christophedlr

  • Full Member
  • ***
  • Messages: 151
    • Voir le profil
    • E-mail
Re : [Clock/Time] Quelle précision quand on ne restart pas ?
« Réponse #6 le: Mars 18, 2014, 10:50:06 am »
D'accord, ben je ne savais pas. Par contre en interne, c'est géré comment au niveau du langage ? C'est un int 32-bits d'un int 32-bits ?

Laurent

  • Administrator
  • Hero Member
  • *****
  • Messages: 32504
    • Voir le profil
    • SFML's website
    • E-mail
Re : [Clock/Time] Quelle précision quand on ne restart pas ?
« Réponse #7 le: Mars 18, 2014, 11:13:11 am »
En interne c'est un int 64 bits. C'est le compilo qui gère les détails.
Laurent Gomila - SFML developer

christophedlr

  • Full Member
  • ***
  • Messages: 151
    • Voir le profil
    • E-mail
Re : [Clock/Time] Quelle précision quand on ne restart pas ?
« Réponse #8 le: Mars 18, 2014, 12:12:23 pm »
Ok merci de l'information ;)