Форум программистов, компьютерный форум, киберфорум
C#: ASP.NET Core
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.56/18: Рейтинг темы: голосов - 18, средняя оценка - 4.56
14 / 14 / 0
Регистрация: 27.07.2018
Сообщений: 481

Чем лучше заменить EF Core для высоких нагрузок?

31.01.2019, 00:18. Показов 3842. Ответов 18

Студворк — интернет-сервис помощи студентам
Хочу сделать свой крупный проект максимально быстрым.Что посоветуете для этого?Понятно, что скорей всего придётся отказаться от EF Core в пользу другого инструмента, но какого именно?Ваши обоснованные мнения.Спасибо!
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
31.01.2019, 00:18
Ответы с готовыми решениями:

Чем i3 лучше intel core 2 duo e8400?
вопрос задан

Какие материнские платы подойдут лучше для процессоров Intel Core i7 3770/3770K и Core i5 3570/3570K?
Какие материнские платы подойдут лучше для процессоров Intel Core i7 3770/3770K и Core i5 3570/3570K? Хочется услышать мнение специалистов...

AMD Athlon 64 X2 Dual Core Processor 5200+ вырубается от нагрузок
Здрасте)) Раньше у меня процессор сильно нагревался, вырубался при любой нагрузке... Потом всё- таки мы его сделали, точнее я заменил...

18
19 / 17 / 3
Регистрация: 11.05.2018
Сообщений: 166
31.01.2019, 01:55
sergeyilyin1984, можно Dapper использовать .
0
.NET C#,ASP.NET MVC
Эксперт .NET
 Аватар для lvlkoo
594 / 507 / 224
Регистрация: 16.10.2010
Сообщений: 1,902
31.01.2019, 03:13
Лучший ответ Сообщение было отмечено sergeyilyin1984 как решение

Решение

sergeyilyin1984, ничем. EF хорошая и удобная ОРМ. Не вижу смысла заменять ее на какието обрезки ради пары лишних наносекунд на DAL слое

Хотите быстродействия - используйте кеширование
0
163 / 138 / 35
Регистрация: 25.11.2015
Сообщений: 910
31.01.2019, 07:29
Хочешь скорости - бери железо помощнее. Если проект крупный, то лучше брать в аренду сервер. Принцип такой, ты можешь потратить месяц на оптимизацию алгоритмов, подбор БД и прочую муть, а можешь переплатить 50 долларов в месяц и получить сервер в 2 раза производительнее. Ну, алгоритмы тоже надо пересматиривать в сторону уменьшения времени обработки запросов, но лучше это делать в спокойной обстановке, когда все уже работает. Тогда воно будет работать еще быстрее

Добавлено через 15 минут
Да, и чтобы там ни писали на хабрах - самая стабильная и безгеморройная работа связки "приложение + БД" - это Core + SQL Server.

Пробовал работать с MongoDb. БД работает шустрее, миграции автоматические, вообще понравилось: это плюс. Из минусов: траблы с Identity - много руками надо делать.
При разворачивании приложения трудно найти хост-провайдера, где помимо стандартного SQL Server на хостинге можно прикрутить MongoDb. На арендованном сервере можно, но тогда теряется смысл перехода. Мощность сервера такая-же как и на тарифах обычного хостинга, а платишь в 5-10 раз больше.
0
 Аватар для _katon_
414 / 265 / 25
Регистрация: 03.10.2011
Сообщений: 1,094
31.01.2019, 09:27
Цитата Сообщение от yurickas Посмотреть сообщение
Хочешь скорости - бери железо помощнее
Я с этим согласен. Хочу только добавить, что некоторые делают такую муть, что никакое железо не затащит. Мой опыт работы (конечно же это субъктивно) показыват, что оснавная проблема низкой производительности - низкая квалификация.
0
14 / 14 / 0
Регистрация: 27.07.2018
Сообщений: 481
31.01.2019, 10:36  [ТС]
Работаю с PostgreSql.Постгрэсники советуют везде пехать хранимые процедуры или вообще работать с Redis.Решил использовать метод FromSql() + кэширование в памяти.Как считаете?
0
.NET C#,ASP.NET MVC
Эксперт .NET
 Аватар для lvlkoo
594 / 507 / 224
Регистрация: 16.10.2010
Сообщений: 1,902
31.01.2019, 11:45
Цитата Сообщение от sergeyilyin1984 Посмотреть сообщение
Решил использовать метод FromSql() + кэширование в памяти.Как считаете?
Зачем?) Зачем эти извращения если вы начали мыслить в правильную сторону по поводу кеширования.

У вас загрузка данных будет происходить раз, или несколько раз через определенный период, асинхронная запись никому мешать не будет
0
14 / 14 / 0
Регистрация: 27.07.2018
Сообщений: 481
31.01.2019, 12:11  [ТС]
То есть, при использовании кеша, в методе FromSql() нет смысла?
0
.NET C#,ASP.NET MVC
Эксперт .NET
 Аватар для lvlkoo
594 / 507 / 224
Регистрация: 16.10.2010
Сообщений: 1,902
31.01.2019, 12:23
Цитата Сообщение от sergeyilyin1984 Посмотреть сообщение
в методе FromSql() нет смысла?
Только если у вас есть сторед процедуры, но тут уже нужно смотреть по ситуации на сколько вообще профитно использовать процедуру, а не выполнить просчет средствами .net,
0
14 / 14 / 0
Регистрация: 27.07.2018
Сообщений: 481
31.01.2019, 12:25  [ТС]
Спасибо!Пока остановлюсь на кеше, а потом, если этого не хватит, то все нагруженные места перенесу в хранимки.
0
0 / 0 / 0
Регистрация: 01.06.2016
Сообщений: 3
28.02.2019, 23:24
можно на чистый адо.нет перейти
0
 Аватар для IamRain
4693 / 2701 / 734
Регистрация: 02.08.2011
Сообщений: 7,227
28.02.2019, 23:59
Цитата Сообщение от sergeyilyin1984 Посмотреть сообщение
Постгрэсники советуют везде пехать хранимые процедуры или вообще работать с Redis.
И не просто так советуют, Postgresql не считается быстрой СУБД. К примеру:
Why is retrieving data from Elasticsearch so much faster than from PostgreSQL?
ElasticSearch с поиском объектов очень даже неплохо справляется.
Usecases :

Ecommerce websites use elasticsearch to index their entire product catalog and inventory with all the product attributes with which the end user can search against.

So whenever a user search for a product in the website, the corresponding query will hit an index which has millions of products and it will retrieve the product in near real time.
0
14 / 14 / 0
Регистрация: 27.07.2018
Сообщений: 481
01.03.2019, 00:39  [ТС]
А что SQL Server быстрее?Я бы его использовал, но ограниченный бесплатный лимит мне не подходит.
0
Эксперт .NET
 Аватар для Usaga
14087 / 9305 / 1348
Регистрация: 21.01.2016
Сообщений: 34,946
01.03.2019, 13:30
sergeyilyin1984, у Entity Framework (что у 6-го, что у Core) есть два фатальных недостатка, которые никто не собирается исправлять: "разогрев" и невозможность тонкой настройки запросов. А у 6-го ещё и не самые вменяемые (иногда вообще невменяемые запросы).

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

Опускаться до уровня хранимых процедур тоже не рекомендую без полной уверенности в том, что это необходимо. Поддерживать тонны хранимых процедур - дело неблагодарное. Их код переиспользовать сложно. Сложно и отлаживать. Ну и если встанет вопрос миграции, то тут тоже могут быть проблемы. Тоже самое и с голым SQL.

Я рекомендую для начала убедиться, что EF Core вам не подходит и уже потом смотреть на что-то более лёгкое.

Как вариант, вполне себе отличной заменой EF'у является Linq2Db. Там нет change tracker'а, нет многих удобств EF'а, но оно сильно ближе к SQL'у, не пытается из себя строить Domain Model, позволяет даже (хоть и ограниченно) использовать Query Hints. При этом, оно всё равно строит за вас запросы, поддерживает все современные СУБД, и с помощью этой ORM очень сложно будет написать дерьмовый запрос.
0
14 / 14 / 0
Регистрация: 27.07.2018
Сообщений: 481
01.03.2019, 14:25  [ТС]
А что насчёт вышеперечисленных советов в плане кеширования в памяти и наращивания "железа", а также dapper, а?Ваше мнение?
0
Эксперт .NET
 Аватар для Usaga
14087 / 9305 / 1348
Регистрация: 21.01.2016
Сообщений: 34,946
01.03.2019, 14:28
sergeyilyin1984, кеширование и мощное железо идёт параллельно выбору правильной ORM и особенно с этим вопросом не связано.

Dapper - простой мапер. Для работы с голым SQL. Насчёт SQL я выше уже озвучил своё мнение: нужно только тогда, когда иначе уже никак. Т.е. необходимость перехода на низкоуровневое общение с СУБД нужно ещё доказать.
0
14 / 14 / 0
Регистрация: 27.07.2018
Сообщений: 481
01.03.2019, 15:17  [ТС]
Помню, как-то вы писали, что от EF стоит отказаться, если у меня в базе более 50 сущностей. Так вот, их точно не больше и больше не предвидится.Но точно будет ооочень высокая посещаемость в секунду времени.Планируются тысячи и миллионы зарегистрированных пользователей, которые будут пользоваться услугами приложения.Особенно много будет находиться в чате и общаться в реальном времени.Что скажете насчёт производительности EF при таких делах?

Добавлено через 23 минуты
Usaga, И ещё, есть какие-нибудь бенчмарки на сравнение производительности linq2db и EF Core?Насколько первый быстрее второго?
0
Эксперт .NET
 Аватар для Usaga
14087 / 9305 / 1348
Регистрация: 21.01.2016
Сообщений: 34,946
01.03.2019, 16:03
Лучший ответ Сообщение было отмечено sergeyilyin1984 как решение

Решение

sergeyilyin1984, бенчмарков нет, ибо в них нет смысла. ORM - только треть того, что влияет на производительность запроса. Остальные две трети - схема базы и то, как программист распоряжается этой ORM. Легко и непринуждённо можно написать запрос на голом SQL, который будет работать хуже, чем даже на EF6.

Судя по описанию, у вас ни разу не информационная система или ERP или что-то в этом духе. А значит недостатки EF'а могут и не проявиться (долгий запуск приложения, в следствии "разогрева" - когда много сущностей в контексте, и отсутствие некоторых полезных "низкоуровневых" вещей типа Merge, Batch Update\Delete, Query Hints).

Если предвидятся "миллионы пользователей", то ORM тут не единственное, что будет выступать "узким горлышком".

Если сомневаетесь, то просто возьмите Linq2Db и всё.
0
14 / 14 / 0
Регистрация: 27.07.2018
Сообщений: 481
01.03.2019, 16:28  [ТС]
Usaga, Спасибо!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
01.03.2019, 16:28
Помогаю со студенческими работами здесь

Чем лучше заменить?
Прошу совета у спецов: имеется две DDR 256Mb PC3200 Hynix, хочу помощнее. Чем лучше заменить? ( Данные компа: AMD 3000+Athlon64 box 1,88...

На чем лучше написать лучше сайт для футбольного клуба?
На чем лучше написать лучше сайт для футбольного клуба? Просто написал примитивный вот http://fcslonim.hol.es Хотелось более...

Чем лучше заменить кавычки в строке SQL?
и одинарные и двойные и если есть какие другие символы которые могут помешать то какие и на какие их в строке SQL лучше заменить (Работа...

Чем Python лучше для кроссплатформенности чем C++?
Чем Python лучше для кроссплатформенности чем C++?

Какой лучше INTEL Core i7-6700 или Core i7-4790
Мне нужен мощный офисный пк, НЕ ДЛЯ ИГР Для того, чтобы все приложения гарантировано без тормозов работали Есть два идентичных варианта...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
19
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru