【发布时间】:2012-01-15 01:00:17
【问题描述】:
我最近了解到可以在运行时生成 C# 代码,我想使用此功能。我有一些代码可以进行一些非常基本的几何计算,例如计算线平面交点,我认为通过为某些方法生成专门的代码可以获得一些性能优势,因为许多计算是针对同一平面或同一直线执行的一遍又一遍。通过专门计算交叉点的代码,我认为我应该能够获得一些性能优势。
问题是我不知道从哪里开始。通过阅读一些博客文章和浏览 MSDN 文档,我发现了两种在运行时生成代码的可能策略:表达式树和 IL.Emit。使用表达式树似乎要容易得多,因为不需要学习任何关于 OpCodes 和其他各种与 MSIL 相关的复杂知识,但我不确定表达式树是否与手动生成的 MSIL 一样快。那么对于我应该采用哪种方法有什么建议吗?
【问题讨论】:
标签: c#-4.0 code-generation metaprogramming specialization partial-specialization