Re[14]: Тормознутость и кривость linq
От: alex_public  
Дата: 19.03.16 20:28
Оценка:
Здравствуйте, Ikemefula, Вы писали:

_>>А ты думаешь твой ORM в .net по другому устроен? ))) Всё тоже самое. )

I>Щаз, компилирует каждый запрос под 100500 всех возможных баз данных и диалектов SQL, ага.

Причём тут каждый запрос? ) Речь о драйверах к конкретным БД. Что в .net, что в sqlpp11 под каждую БД есть свой драйвер. И соответственно если мы хотим, чтобы наше приложение умело работать со всеми БД, нам требуется скомпилировать их все и вставит в наше приложение.

_>>Я в курсе, что t4 — это препроцессор в C#. И кстати говоря, меня бы вполне устроило решение на нём, если бы оно могло чётко проверять sql синтаксис и генерировать оптимальные sql строки. Только вот я что-то сомневаюсь, что такое просто написать. И думаю, что готовых реализаций просто нет.

I>Итого — ты сомневаешься, что парсинг и генерация sql это решаемые задачи. Вопрос — при чем здесь C# и чем здесь С++ принципиально лучше ? Сам подумай — в рантайме можно, а в дизайн-тайм нельзя

К чему эти теоретически рассуждения? ) Покажи хоть какой-нибудь пример решения. Я то тебе показываю работающие куски кода.

I>>>А кто тебе типы будет подсказывать ?

_>>Нуу это вообще смешной вопрос. ))) Если уж printf типизированный давно существует в современном C++, то тут уже понятно всё. )
I>Нет, не понятно. Ты понамекал и сказал, что все это невозможно в C#

Невозможно в C# на этапе компиляции (если не считать варианта с препроцессором, но про такое я вообще не слышал). В рантайме естественно без проблем, но это уже куча оверхеда.

_>>ОК, будем считать, что ты плохо понял мою фразу. ) Очевидно, что время работы рефлексии никто не сравнивает со временем склейки голых строк. Её сравнивают с нулём, т.е. всё её время — это чистый оверхед.

I>И это принципиально неверно. Сравнивать нужно со временем типичных запросов, а они никогда нулю равны не бывают.

Всё правильно. Берём оверхед от рефлексии и всего остального и сравниваем со временем выполнения запроса. Если там будут не десятки процентов, то естественно можно наплевать на это всё. Кстати, а ты представляешь сколько на современной БД исполняется запрос вида "select count(*) from users"? ) Даже без кэширования...
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.