Bonjour � toutes et � tous
J'ai fait un benchmark pour comparer deux politiques pour un algorithme : "identity" et "truncate" (y'en a � qui �a �voquera quelque chose)
J'ai utilis� std::chrono::high_resolution_clock pour mesurer le temps mis par chaque strat�gie.
J'ai r�-�chantillonn� 10000 fois le temps d'ex�cution pour chaque strat�gie.
Comme je benchmark pour diff�rents jeux de variables d'entr�e des algos, j'ai commenc� par regarder seulement les moyennes des temps d'ex�cution. Mais apr�s coup j'ai quand m�me voulu jeter un coup d'oeil aux distributions sous-jacentes.
Bizarrement, il y a souvent des distributions bi-modales qui apparaissent, et �a me pla�t pas trop. Par exemple, sur la figure suivante, la strat�gie rose va �tre sur-p�nalis�e si on ne compare les strat�gies que sur le crit�re de la moyenne (traits verticaux).
Je ne sais pas trop d'o� ces artefacts peuvent venir (pour un m�me jeu de variables d'entr�e de l'algorithme ils peuvent ou pas appara�tre, mais certains param�trages ont l'air d'�tre plus susceptibles � ce genre d'incidents).
J'ai lu par ailleurs qu'on est cens� benchmarker dans des conditions "optimales" (pas de programmes de fond, pas de GUI ... ). Evidemment, ce n'est pas ce que j'ai fait, pensez-vous.Pensez-vous que le probl�me puisse venir de l� ?
Si �a vient de l�, est-ce qu'il vaut mieux prendre le temps de se placer dans ces conditions optimales (Ubuntu sans GUI ? seriously ?) ou bien peut on s'int�resser plut�t au temps CPU (m�me si j'avais lu qu'il vaut g�n�ralement mieux utiliser le temps syst�me, le programme n'est pas multithread� donc j'imagine qu'on ne prend pas beaucoup de risques ? ).
Est-il de coutume de s'encombrer de ce genre de consid�rations (ou j'en fais trop) ?
merci � vous![]()
Partager