Macro Basic très très lente

Bonjour,

J’ai juste fait une boucle FOR dans une macro avec un calcul de sinus pour faire un test de vitesse.
Excel me termine la boucle en 0.8s, Calc le fait en 50s !!!

Calc est-il si mauvais ou ai-je loupé un réglage ?

Merci d’avance.

Sans la source de la macro comment peut-on donner un commentaire?

En annexe tu trouveras un fichier dans lequel je calcule les fonction SIN et COS par série de Taylor.
Il y a deux versions:

  • La première qui ne tient pas compte des quadrants
  • La seconde (SIN_SEC2) qui ramène le calcul au premier quadrant

On peut constater que pour avoir un résultat aves 13 chiffres significatifs identiques à ceux calculés par le fonction de Calc il faut :

  • Minimum 18 itérations si on ne tient pas compte des quadrants
  • 9 itérations si on en tient compte (ce qui diminue sérieusement le nombre de calculs nécessaires)

Tu pourrais traduire ce fichier sous Excel VBA (je ne le possède plus) et regarder combien il en faut pour avoir 13 chiffres significatifs identiques…

Sous Clac je ne sais pas quel langage a été utilisé pour rédiger le pgm (C++ je suppose) mais le nombre de chiffre significatifs des cellules est de 17 (sous Excel c’est 15)

LOBasic travaille avec des “DOUBLES” de 17 chiffres significatifs

VBA trailles avec des doubles de 18 chiffres significatifs

Tu vois que ce n’est pas comparable.

Mais conclure que Calc est nul parce qu’il met plus de temps pour réaliser une boucle qui tourne dans l’API LOB (et pas dans CALC) qui calcule 10e6 (10 millions) de fois SIN tient plus de la mauvaise fois que du comparatif réaliste.

Qui devra réaliser ce type de calcul???

Qui devrait payer Microsoft Office pour bénéficier de cette différence hypothétique de “performance”?

BAT

Test-Sin.ods

Oui c’est vrai, c’était clair pour moi mais ça manque de détails…

Voici le code minimaliste de la macro excel:

For i = 0 To 10000000

j = Sin(i * 3.14159 / 1000000)

Next