[.Net] DynamicMethod: performance ultime pour exécuter du code DOM

dotnet performance dynamicmethod

Lorsqu’on est développeur d’applications, on doit sans cesse faire attention à l’utilisation des ressources et aux performances d’exécution.

Récemment j’ai rencontré plusieurs soucis liés aux performances de mon code et plus précisément sur l’exécution de plusieurs milliers de fonctions DOM (via vbcodeprovider).

J’ai donc fait plusieurs recherches sur le net et j’ai trouvé (désolé je n’ai pas retenu l’addresse) une solution très performante qui consiste à utiliser les DynamicMethod à la place des invoke.

Les DynamicMethod sont tout simplement des méthodes dynamiques (pas possible !) qui peuvent être compilées, exécutées et supprimées. La puissance des DynamicMethod est qu’elles sont exécutées quasiment avec la même rapidité que si elles étaient directement compilées dans votre code.

Je vous invite à lire la MSDN concernant les DynamicMethod, qui sont considérées comme le méthode la plus rapide pour compiler et exécuter des morceaux de code.

Au cours de mes lectures j’ai même pu voir que les DynamicMethod étaient jusqu’à 2000 fois plus performantes que les autres méthodes telles que Reflection, Invoke, …

Voici le résultat obtenu:

dotnet performance dynamicmethod

dotnet performance dynamicmethod

Plutôt concluant non ? Allez pour ceux qui sont dubitatifs, je vous mets à disposition la solution complète que j’ai écrite pour benchmarker les DynamicMethod.

La solution utilisant les DynamicMethod est disponible ici

Leave a Reply

Your email address will not be published. Required fields are marked *