Привет,
Совсем ламерский вопрос.
http://gameprogrammingpatterns.com/bytecode.html
Там есть такой текст:
Put those together, and what do they spell? S-L-O-W. There’s a reason most programming languages in wide use aren’t based on the Interpreter pattern. It’s just too slow, and it uses up too much memory
С другой стороны вот тут:
1. Decompile IL code for the query at runtime, and turn it into the target language – quite roundabout
2. Enable representing the query’s code as data at runtime by emitting an expression tree at compile-time
(c) http://community.bartdesmet.net/blogs/bart/archive/2009/08/10/expression-tree...
Описано как LINQ разбирает лямбды как раз в синтактическое дерево (а не непосредственно в инструкции IL), чтобы потом скомпилировть. Разве это не будет медленно? Если используется не Ahead-of-Time а Just-in-Time компиляция, разве представление лямбд в ввиде дерева из класс, в котором множество объектов того же самого типа не займет множество места и не затратит множество CPU циклов, чтобы превратить это в bytecode, вместо того, чтобы представить каждое варажение в лямбде непосредственно как инструкцию для виртуальной машины (в данном случае IL) внутри DLL/EXE?
Т.е. не значит ли это что LINQ - это очень медленно? Почему тогда гугл говорит что это не так? Например тут: https://stackoverflow.com/questions/11296439/is-linq-much-slower-than-a-simpl...