Домейн специфични оптимизации за Plugin базирани системи

Цели

Да се реализират домейн специфични методи за оптимизация на plugin базирани системи, като се използва съществуващата инфраструктура на SolidOpt framework.

Описание

Plugin модулите са мощен инструмент за създаване на лесно разширяеми системи, но това обикновено влошава работата/бързодействието на цялата система. Един добър компромис може да се постигне, когато системата не може да се разширява по всяко време на работата си, а само като тя се стартира. Това отваря възможности за прилагане на оптимизации на цялата система и plugin-ите и за намаляване на влиянието на слабата свързаност на нейните модули върху бързодействието. Оптимизации като сливане на plugin модули с базовата програма, автоматично маркиране на класовете като sealed, девиртуализация на методи, премахване на някои от шаблоните за дизайн и т.н. са само примери за това как можете да постигнат по-добри резултати, без да губи гъвкавостта и добрия дизайн на системата. Резултатите от оптимизации могат да бъдат кеширани за да се избегне провеждането на тези тежки анализи и трансформации при всяко стартиране на програмата. Този подход позволява оптимизациите да се извършват само когато се добавят или се премахват модули.

Реализираното приложение трябва да бъде в състояние да се трансформира и да кешира резултата, след което трансформираната система трябва да се стартира. Трансформации трябва да се правят само ако кеша е невалиден (например набора от плъгини се е променил, конфигурацията се е променила и т.н.). Трябва да се помисли за рисковете за сигурността и дали преобразуването не може да бъде направено чрез системна услуга или демон.

Дипломантите ще придобият по-широки познания по програмиране на ниско ниво и създаване и автоматизирана трансформация на високомодулни софтуерни системи.

Сложност

Средна/Висока.

Необходимо време

6-12 месеца.

Необходими предварителни познания

Необходими са познания в следните области и технологии:

  • .NET (основно C# и IL)
  • Mono.Cecil
  • SolidOpt framework
  • Принципи на компилацията, декомпилацията и оптимизациите

Разяснения

Идеи и съществуващи решения

Домейн специфичните оптимизации са клас трансформации, извършвани над софтуерните системи, имащи за цел подобраване на работата на системата в дадено направление (например подобраване на бързодействието на системата), като тези трансформации са приложими или характерни само са конкретната предметна област (домейн). Понякога тези оптимизации може да са дори специфични за конкретното приложение, като в случая се използват знания не само от конкретната област, но и знания за спецификите и реализацията на конкретното приложение. Характерно за домейн специфичните оптимизации, е че те не са предмет на съществуващите оптимизационни методи в съвременните компилатори, защото компилаторите прилагат само общовалидни техники т.е. такива които са приложими във всички случаи.

Добре е да се разгледат следните налични материали:

Ментори

А.Пенев

Материали

все още няма