Choix guidés par les performances de la plateforme 

TESTS DE PERFORMANCE

Choix guidés par les performances de la plateforme 

Méthodologie Nous avons réalisé des tests de bas-niveau en C# et utilisé les services de la plate-forme .NET en matière de mesure d’intervalles de temps (Classes DateTime et TimeSpan), qui fournissent le temps réel total d’exécution (cela ne détaille pas les temps d’exécution des difé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 cette section des représentations oncurrentes 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 structures typées (classes dont les champs reçoivent le type le plus approprié) fa e aux stru tures génériques (les tableaux d’objets). Les tests présentés sur le tableau suivant comparent la performance des opérations de réaction, d’a ès en le ture, d’a ès en écriture et de opie sur les représentations envisagées, pour un  panier  d’enregistrements possédant 2, 8 et 16 champs, en distinguant trois occupations possibles de ces champs : sur la ligne (R) uniquement des types référenes (objets, chaînes de caractères. . . ), sur la ligne (V) uniquement des types valeurs (entiers, ottants. . . ) et sur la ligne (M) un mélange équitable des deux.

Pour chaque colonne 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 chires 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 structures typées soit d’autant plus grand que la proportion de types valeurs augmente.

Or e n’est pas toujours le as, certainement en raison de l’action du ramasse-miettes sur les valeurs des types références qui deviennent aduques au ours des tests et qui sont don olle tées. Ce i dit, les structures 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 section 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’objets gardant le tag dans une ase additionnelle,  des lasses aux champs typés de manière exacte, héritant d’une lasse mère Variant qui dénit un champ tag. Les opérations de réaction, le ture et opie sont identiques à elles des enregistrements vus précédemment.

Nous reproduisons i i les résultats obtenus pour des opérations de filtrage sur les variants (test du tag suivi d’un down ast si nécessaire) en reportant également les valeurs obtenues ci-dessus pour les opérations de réaction 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’extraction 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 filtrage ci-dessus n’est pas réaliste ar il simule un filtrage sans le ture des données contenues dans les variants. Les véritables performances sont situées entre elles du filtrage et de la le ture (les deux tests faisant tourner un nombre comparable d’opérations) et nous estimons don que les structures 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. 

Choix guidés par les performances de la plateforme Té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 *