J'ai une fonction dans mon programme qui préforme tout un tas de maths en virgule flottante. Il renvoie un tableau de valeurs qui n'est pas encore utilisé dans mon programme pour le moment. Je veux tester ce morceau de code pour la vitesse sous optimisations maximales, mais comme le code n'est pas utilisé, le compilateur saute commodément la fonction et je ne peux pas avoir de temps dessus. Comment forcer le compilateur à exécuter cette section de code sous les optimisations maximales même si le résultat n'est pas utilisé (je veux que l'ordinateur me donne juste une idée de la vitesse d'exécution de la section).Comment forcer une section de code inachevée à s'exécuter même sous des optimisations maximales?
Je suis en Visual C++ 2008.
Ne serait-il pas plus simple d'utiliser le résultat? Comment proposez-vous de comparer les optimisations vraiment maximales si vous avez l'intention d'en désactiver un ou plusieurs (en supprimant le code inutilisé)? –
Je pensais plus à un hack qu'à un truc sympa: Si ça renvoie un tas de maths en virgule flottante, quand il retourne ceci, utilisez rand() pour imprimer 1 point flottant depuis le tableau. De cette façon, le compilateur ne peut jamais omettre de calculs, car il ne sait pas lequel il aura besoin plus tard. Je ne connais pas de manière "élégante". – Yuri