Aller au contenu

/ 2 ou * 0.5 ???... et bien :


Messages recommandés

Posté(e)

Salut à tous,

suite à une discussion avec un collègue qui m'affirmait qu'en programmation il est préférable de diviser par 2 que de multiplier par 0.5, j'ai fait un petit test grâce à la routine "chronomètre" de (gile) (merci à lui encore)...

donc :

 (defun get-utime ()
(* 86400 (getvar "tdusrtimer"))
)

(defun c:testm ()
 (setq t0 (get-utime)) 
 (setq a 2)
 (repeat 1000000
   (setq b (* a 0.5)))
 (setq t1 (get-utime)) (princ (strcat "\n; Temps: " (rtos (- t1 t0)) " sec"))
 (princ)
 )

(defun c:testd ()
 (setq t0 (get-utime))
 (setq a 2)
 (repeat 1000000    
   (setq b (/ a 2)))
 (setq t1 (get-utime)) (princ (strcat "\n; Temps: " (rtos (- t1 t0)) " sec"))
 (princ)
 )

 

He bien, faites le test :

pour testm (multiplier) : 1.71 sec.

pour testd (diviser) : 2.35 sec ....

 

Donc, en fait il vaut mieux multiplier par 0.5 que diviser par 2 ...

 

Si vous êtes persuadés de tout savoir sur un sujet, c''est que vous en ignorez quelque chose...

Posté(e)

Je ne sais pas si ce test est vraiment fiable car j'ai obtenu des résultats variables.

 

Par contre ton test diviser n'est pas objectif car tu fait une division d'entier, alors que celui de multiplier est fait avec des réels (0.5 est un réel et cela suffit).

 

Mais il vrai que j'ai entendu dire qu'il valait mieux executer une multiplication par 0.5 qu'une division par 2.0 pour la rapidité d'execution.....

Choisissez un travail que vous aimez et vous n'aurez pas à travailler un seul jour de votre vie. - Confucius

Posté(e)

Un petit test vite fait (avec des réels) donnerait, chez moi, un léger avantage à la division :

 

Commande: testd

 

; Temps: 1.7810 sec

 

Commande:

Commande: testm

 

; Temps: 2.0000 sec

 

Commande:

Commande: testd

 

; Temps: 1.7970 sec

 

Commande:

Commande: testm

 

; Temps: 2.0160 sec

 

Et, dans les deux cas, un leger avantage à la Console VisualLISP par rapport à ligne de commande :

 

_$ (c:testd)

 

; Temps: 1.0470 sec

_$ (c:testm)

 

; Temps: 1.2650 sec

_$ (c:testd)

 

; Temps: 1.0310 sec

_$ (c:testm)

 

; Temps: 1.2500 sec

 

[Edité le 28/6/2006 par (gile)]

Gilles Chanteau - gileCAD - GitHub
Développements sur mesure pour AutoCAD

Posté(e)

Salut,

Comme le dit bonuscad, le test n'a pas l'air d'être trés fiable en fait, car j'ai chaque fois des valeurs différentes... mais avec une majorité de temps minimum en division... :exclam:

 

Je vais donc être obligé de faire face à mes responsabilité en perdant la face devant mon collègue... tant pis pour moi... :mad2:

 

... snif ! ...

 

Si vous êtes persuadés de tout savoir sur un sujet, c''est que vous en ignorez quelque chose...

Créer un compte ou se connecter pour commenter

Vous devez être membre afin de pouvoir déposer un commentaire

Créer un compte

Créez un compte sur notre communauté. C’est facile !

Créer un nouveau compte

Se connecter

Vous avez déjà un compte ? Connectez-vous ici.

Connectez-vous maintenant
×
×
  • Créer...

Information importante

Nous avons placé des cookies sur votre appareil pour aider à améliorer ce site. Vous pouvez choisir d’ajuster vos paramètres de cookie, sinon nous supposerons que vous êtes d’accord pour continuer. Politique de confidentialité