Недавно я узнал, что можно генерировать код C# во время выполнения, и я хотел бы использовать эту функцию. У меня есть код, который выполняет некоторые очень простые геометрические вычисления, такие как вычисление пересечений линии и плоскости, и я думаю, что мог бы получить некоторые преимущества в производительности, создав специализированный код для некоторых методов, потому что многие вычисления выполняются для одной и той же плоскости или одной и той же линии. и снова. Специализируя код, вычисляющий пересечения, я думаю, что смогу получить некоторые преимущества в производительности.
Проблема в том, что я не знаю, с чего начать. Прочитав несколько сообщений в блогах и просмотрев документацию MSDN, я обнаружил две возможные стратегии генерации кода во время выполнения: деревья выражений и IL.Emit. Использование деревьев выражений кажется намного проще, потому что нет необходимости изучать что-либо об OpCodes и различных других тонкостях, связанных с MSIL, но я не уверен, что деревья выражений так же быстры, как MSIL, сгенерированные вручную. Итак, есть ли какие-либо предложения о том, какой метод мне следует использовать?