Сообщение Re[183]: Тормознутость и кривость linq. Compile-time EDSL DB от 10.07.2016 22:19
Изменено 11.07.2016 6:47 Serginio1
Здравствуйте, Evgeny.Panasyuk, Вы писали:
S>> То есть твое утверждение, что " в рамках непосредственно C# такое и вовсе нереализуемо "
S>>Это ложь. Это не реализуемо в рамках конкретной реализации EF. Но никак не языка.
EP>Так я же говорю про "непосредственно C#", а не какие-либо внешние утилиты.
То есть например если это будет сделано в компиляторе .Net Native это внешняя утилита?
Она кстати использует Компилятор С++
https://rsdn.ru/forum/flame.comp/6497386.1
S>> То есть твое утверждение, что " в рамках непосредственно C# такое и вовсе нереализуемо "
S>>Это ложь. Это не реализуемо в рамках конкретной реализации EF. Но никак не языка.
EP>Так я же говорю про "непосредственно C#", а не какие-либо внешние утилиты.
То есть например если это будет сделано в компиляторе .Net Native это внешняя утилита?
Она кстати использует Компилятор С++
https://rsdn.ru/forum/flame.comp/6497386.1
Автор: Serginio1
Дата: 10.07.16
Дата: 10.07.16
.NET Native использует то же сервер, что и компилятор C++, который оптимизирован для статических сценариев предварительной компиляции.
Re[183]: Тормознутость и кривость linq. Compile-time EDSL DB
Здравствуйте, Evgeny.Panasyuk, Вы писали:
S>> То есть твое утверждение, что " в рамках непосредственно C# такое и вовсе нереализуемо "
S>>Это ложь. Это не реализуемо в рамках конкретной реализации EF. Но никак не языка.
EP>Так я же говорю про "непосредственно C#", а не какие-либо внешние утилиты.
То есть например если это будет сделано в компиляторе .Net Native это внешняя утилита?
Она кстати использует Компилятор С++
https://rsdn.ru/forum/flame.comp/6497386.1
Проблема динамического компилятора в том, что он не оптимизирует код.
При работе с провайдером ему подается ET которое он может скомпилировать и закэшировать.
То, что можно в динамике, можно сделать и в статике со статическим ET.
С заранее известному провайдеру можно пойти двумя способами.
1. Трансформация IL кода. Разобрав существующий IL код и встретив IQueryable, можно получить статическое ET скормить его провайдеру и получить IL код и заменить его.
2. Например можно создать для .Net Native расширения которые будут сразу компилировать.
Здесь проблема не в языке, а в компиляторе.
S>> То есть твое утверждение, что " в рамках непосредственно C# такое и вовсе нереализуемо "
S>>Это ложь. Это не реализуемо в рамках конкретной реализации EF. Но никак не языка.
EP>Так я же говорю про "непосредственно C#", а не какие-либо внешние утилиты.
То есть например если это будет сделано в компиляторе .Net Native это внешняя утилита?
Она кстати использует Компилятор С++
https://rsdn.ru/forum/flame.comp/6497386.1
Автор: Serginio1
Дата: 10.07.16
Дата: 10.07.16
.NET Native использует то же сервер, что и компилятор C++, который оптимизирован для статических сценариев предварительной компиляции.
Проблема динамического компилятора в том, что он не оптимизирует код.
При работе с провайдером ему подается ET которое он может скомпилировать и закэшировать.
То, что можно в динамике, можно сделать и в статике со статическим ET.
С заранее известному провайдеру можно пойти двумя способами.
1. Трансформация IL кода. Разобрав существующий IL код и встретив IQueryable, можно получить статическое ET скормить его провайдеру и получить IL код и заменить его.
2. Например можно создать для .Net Native расширения которые будут сразу компилировать.
Здесь проблема не в языке, а в компиляторе.