User Tools

Site Tools


td9:part2

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
td9:part2 [2021/11/06 15:23]
bmonsuez [Question n°3]
td9:part2 [2022/11/18 10:48] (current)
Line 1: Line 1:
-====== Partie 2 :Mesuré ​le temps passé par une fonction ======+====== Partie 2 : Mesurer ​le temps passé par une fonction ======
  
 [[in204:​tds:​sujets:​td9|TD9]] [[in204:​tds:​sujets:​td9|TD9]]
Line 140: Line 140:
 ==== Question n°5 ==== ==== Question n°5 ====
  
-Créer une fonction nouvelle qui va appeller la fonction ​<​code>​estimate_time</​code> ​pour calculer ​<​code>​x</​code> ​fois le temps et retourné ​le temps moyen pour effectuer un "​run"​ de la fonction.+Créer une fonction nouvelle qui va appeller la fonction ​ ''​estimate_function_time'' ​pour calculer ​''​x'' ​fois le temps nécessaire pour calculer la fonction ​et qui retourn ​le temps moyen pour effectuer un "​run"​ de la fonction.
  
-Exécuter cette fonction pour les fonctions <​code>​power</​code>​ et <​code>​factorial</​code>​ précédemment définie. 
  
-==== Question n°4 ====+Cette fonction aura l'​entête suivante :
  
-Que faut-il faire ajouter pour dire au compilateur que la fonction ​<​code>​factorial</code> ou que la fonction <code>power</​code> ​peut-être exécutée au moment de l'​exécution ?+<​code ​cpp> 
 +template<class Function, class ... Args> 
 +long long mean_function_time(int number_of_runs,​ Function function, Args... arguments) 
 +
 +... 
 +
 +</​code>​
  
-Effectuer ​la modification.+<hidden Correction>​ 
 + 
 +Il suffit de lancer ''​number_of_runs''​ fois un appel à ''​estimate_function_time''​ pour la fonction et les argumentsCeci donne le code suivant : 
 + 
 +<code cpp> 
 +template<​class Function, class ... Args> 
 +long long mean_function_time(int number_of_runs,​ Function function, Args... arguments) 
 +
 + long long duration = 0L; 
 + int remaining_runs = number_of_runs;​ 
 + while (remaining_runs-- > 0) 
 + duration += estimate_function_time(function,​ arguments...).first.count();​ 
 + return duration / (long long)number_of_runs;​ 
 +
 +</​code>​ 
 + 
 +</​hidden>​
  
-Calculer le temps pris désormais par ces fonctions. 
  
 +[[.td9:​part1|Manipuler un nombre variable de paramètres]]
  
 +[[.td9:​part3|Exécution à la compilation]]
  
  
td9/part2.1636212197.txt.gz · Last modified: 2021/11/06 15:23 by bmonsuez