Monday, December 26, 2005

Вопросы производительности ECO

Существует несколько аспектов, которые влияют на производительность ECO приложения:
  1. Сама технология. Overhead относительно приложений, написанных без применения ECO составляет 10-15%. Не очень много.
  2. В случае разработки многопользовательских приложений свою лепту вносит .NET Remoting. Который сам по себе не очень быстрый.

Можно сказать, что приложения ECO будут работать примерно в 1,5 раза медленней чем приложения, написанные без применения ECO. НО! тут есть несколько моментов, которые необходимо учитывать. Разарабатывая модель приложения, разработчик вынужден делать это с большей дисциплиной дизайна, что однозначно делает более быстрые решения. Это момент напрямую относящийся к быстродействию. Момент второй, который к быстродействию отношения не имеет. Разрабатывая приложение ECO, программист тратит примерно в 3-10 раз меньше времени.

Решение о том как, и с примененим каких технологий, создается то или иное приложение должно приниматься каждый раз, после оценки требований. Что в общем то понятно. Я еще раз напомню, что ЕСО всего лишь предоставляет возможности, а использовать их или нет - дело каждого разработчика.

4 comments:

Anonymous said...

Евгений!
Случайно наткнулся на Ваш блог. Меня он очень заинтересовал, учитывая, что я являюсь одним из участников проекта "MDA по-русски" (http://mda-delphi.ru). Мне бы очень хотелось видеть Вас на нашем форуме http://mda-delphi.ru/forums

Вопрос, возникший у меня после прочтения заметки. Вы пишите: "делать это с большей дисциплиной дизайна".
Есть -ли конкретные рекомендации на сей счет?
---
С уважением,
Александр

Eugene Danilenko said...

MDA подразумевает под собой модель. Не сделав хорошую можель, не получите "хорошее" приложение. Даже нажатие на кнопку Check model уже есть проявление дисциплины :)
На самом деле некие рекомендации есть конечно, но они как палка о двух концах. Например, формализация вещь хорошая, но перегнув палку с ней, можно напороться на ограничения SQL сервера по количеству join. Под формализацией я имею в виду многоуровневое наследование сущностей.

Anonymous said...

Спасибо.
Как я понял речь здесь идет именно о моделировании.
Когда мы говорили о Bold for Delphi были рекомендации относительно разработки GUI, которые позволяли поднять производительность. Они описанны в книге К. Грибачева.
Для ECO это актуально?

Eugene Danilenko said...

Если честно, то я не читал книгу Грибачева, только цикл статей, опубликованный когда то в "Компьютерпрессе", поэтому ничего конкретного относительно его рекомендаций сказать не могу.
Вообще, поскольку работа с данными в .NET несколько отличается, в частности применяются отвязанные датасеты, интерфейсы которых предоставляются ExpressionHandle, то и рекомендации тут могуть быть общего порядка. Не применять выражений типа Entity.AllInstances и т.д. Еще в ECOIII можно применять пул коннектов при работе через BDP и т.д. т.е. я не встречал ничего такого, что бы отличалось от стандартных рекомендаций.

Естественно, все это можно уточнить.