TESTS DE PERFORMANCE

TESTS DE PERFORMANCE

Choix guidés par les performanes de la plateforme 

Méthodologie Nous avons réalisé des tests de bas-niveau en C# et utilisé les servi es de la plate-forme .NET en matière de mesure d’intervalles de temps ( lasses DateTime et TimeSpan), qui fournissent le temps réel total d’exé ution ( ela ne détaille pas les temps d’exé ution des diérents pro essus et du système). Les tests sont itérés un nombre de fois susant pour que l’exé ution dure au moins 10 se ondes. Les mesures sont pré ises à la millise onde près, mais nous avons hoisi de présenter des tests de performan es relatives en normalisant à haque fois l’un des andidats à 1 et en exprimant les é arts sans garder plus de trois hires signi atifs. Les valeurs données dans les tableaux reètent les temps d’exé ution si bien que plus une valeur est faible, meilleure est la performan e. Il faut noter qu’en raison de l’a tion du ramasse-miettes, que l’on ne peut pas ontrler, les tests de ette se tion ne rendent pas ompte du oût exa t d’une opération isolée mais plutt de ette opération dans un ontexte réel

Structures de données

Représentations des types algébriques Nous évaluons dans ette se tion des représentations on urrentes pour les types algébriques de Caml, à savoir les enregistrements et les variants. Enregistrements. Les enregistrements posent la question de l’e a ité des stru – tures typées ( lasses dont les hamps reçoivent le type le plus approprié) fa e aux stru tures génériques (les tableaux d’ob jets). Les tests présentés sur le tableau suivant omparent la performan e des opérations de réation, d’a ès en le ture, d’a ès en é riture et de opie sur les représentations envisagées, pour un  panier  d’enregistrements possédant 2, 8 et 16 hamps, en distinguant trois o upations possibles de es hamps : sur la ligne (R) uniquement des types référen es (ob jets, haînes de ara tères. . . ), sur la ligne (V) uniquement des types valeurs (entiers, ottants. . . ) et sur la ligne (M) un mélange équitable des deux. Pour haque olonne les valeurs ont été rapportées à la plus petite d’entre elles.  Ces résultats onrment l’avantage des stru tures typées sur les stru tures génériques, e qui justie les eorts de développement en dire tion de la propagation des types dans le ompilateur OCamIL. Les stru tures génériques sous forme de tableaux d’ob jets oûtent en raison des opérations de (dés)en apsulation mais aussi à ause des tests de bornes. Certains hires sont toutefois assez surprenants : par exemple nous nous attendions à e que les valeurs de la ligne (M) soient toujours entre les valeurs des autres lignes, de même que le gain d’utilisation des stru tures typées soit d’autant plus grand que la proportion de types valeurs augmente. Or e n’est pas toujours le as, ertainement en raison de l’a tion du ramasse-miettes sur les valeurs des types référen es qui deviennent aduques au ours des tests et qui sont don olle tées. Ce i dit, les stru tures typées et les stru tures génériques sont testées dans les mêmes onditions et il est surprenant de voir le gain obtenu par es dernières, en parti ulier dans la ligne (M). Les eets du ramasse-miettes doivent moins se faire sentir lors de tests sur des programmes réels (voir se tion 6.2.2.2).

Variants

Les représentations des types variants sont simulées sur la base de elles des enregistrements. Il faut a jouter la dis rimination par un tag. Les deux stru tures testées sont les suivantes :  des tableaux d’ob jets gardant le tag dans une ase additionnelle,  des lasses aux hamps typés de manière exa te, héritant d’une lasse mère Variant qui dénit un hamp tag. Les opérations de réation, le ture et opie sont identiques à elles des enregistrements vus pré édemment. Nous reproduisons i i les résultats obtenus pour des opérations de ltrage sur les variants (test du tag suivi d’un down ast si né essaire) en reportant également les valeurs obtenues i-dessus pour les opérations de réation et de le ture. Création Le ture Filtrage lasses ob je t[℄ lasses ob je t[℄ lasses ob je t[℄ (R) 1,3 2,8 1,0 20 1,3 1,0 (M) 1,2 3,7 1,3 19 1,3 1,0 (V) 1,0 4,9 1,3 26 1,3 1,0 Les valeurs pour le ltrage montrent deux hoses :  les résultats ne dépendent pas de la nature des hamps, qui ne sont pas solli ités lors de l’opération de ltrage elle-même,  le ltrage des stru tures génériques est un petit peu plus e a e, e qui montre que l’extra tion d’un tag sous forme boxée est moins oûteuse que la le ture dire te du hamp entier dans la lasse mère Variant suivie d’un down ast. Le test de ltrage i-dessus n’est pas réaliste ar il simule un ltrage sans le ture des données contenues dans les variants. Les véritables performances sont situées entre elles du ltrage et de la le ture (les deux tests faisant tourner un nombre comparable d’opérations) et nous estimons don que les stru tures génériques sont  moins performantes en situation réelle, faisant intervenir quelques opérations de le ture en moyenne. Les tests de la section 6.2.2.2 sont ee tués sur de véritables programmes Caml, et le programme Moremat h éprouve spéciquement le ltrage de motifs. 

Formation et coursTélécharger le document complet

Télécharger aussi :

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *