Re[43]: MS забило на дотнет. Питону - да, сишарпу - нет?
От: vdimas Россия  
Дата: 01.09.21 23:31
Оценка:
Здравствуйте, Sinclair, Вы писали:

V>>Ну и, низлежащие драйвера связи с БД дают доступ к памяти прочитанной строки БД, т.е., в отличие от дотнетных дров, нет надобности копировать эти данные, да еще в "вертикальное" представление в памяти, когда каждый столбец рекордсета представлен массивом. Прямо из поданной драйвером памяти данные непосредственно используются по чтению.

S>Это где это каждый столбец представлен массивом?

В дотнете.


S>Рекордсет традиционно представлен "массивом" строк, каждая из которых — "массив" значений.


Строки в датасете — это, грубо, маппинг сущностей-строк на индексы в массивах.


S>При этом "копировать", собственно, ничего не надо. В реализации IDataRow можно делать конвертацию на лету при помощи MemoryMarshal.


Можно посмотреть на такую реализацию?


V>>В последних дотнетах тоже есть возможность переписать драйверы общения с БД на похожий манер (через упомянутую сборку Unsafe), но вряд ли это сделают, бо легаси такое легаси...

S>Unsafe не должен быть нужен. Сильно пушка большая. Можно испортить больше, чем улучшить.

Это всё риторическое. ))
Избавление от лишних копирований — неплохая награда, чтобы вот прям так категорично...


V>>И да, в плюсах полно реализаций "самого общего сценария"

V>>https://oatpp.io/docs/components/orm/
V>>(с полутыка найдёшь еще несколько)
V>>Но как-то явного лидера не выявилось, по всем перечисленным причинам.
S>Ну, в прошлый раз при разборе лидеров ORM в плюсах оказалось, что самые передовые из них находятся где-то на уровне JDBC, т.е. в глубоком прошлом по сравнению с Linq.

Подходы другие.
Если берут плюсы, то выжимают эффективность, иначе бы зачем брать плюсы?


S>С тех пор, правда, вышел новый стандарт — может кто-то и взялся напилить что-то более современное.


Периодически пилят, но оно не очень популярно.
Плюсы вообще редко общаются с базой напрямую, кроме как для локальных хранилищ, но там схема данных обычно тривиальнейшая.

А если общаются с сервером, то чаще на ответной стороне сервер приложений со своим кешированием, который отдаёт ответ на предопределённые запросы через предопределённые же типизированные наборы данных. И тоже задержки малость не те, к которым привыкли в дотнете.

И обычно данные справочного характера кешируются на клиенте, т.е. по сети лишний раз не гоняются, что тоже резко отличается от принятого в дотнете (по крайней мере, гдя я на это внимательно смотрел).
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.