Анализ и оптимизация на софтуерни приложения

Подобни документи
Slide 1

Анализ и оптимизация на софтуерни приложения

Анализ и оптимизация на софтуерни приложения

Анализ и оптимизация на софтуерни приложения

Анализ и оптимизация на софтуерни приложения

План за действие за създаване на Български облак за отворена наука Съдържание 1. Визия BOSC Реализация на BOSC Забележки... 5

Компютърна Графика и Презентации - Графично моделиране

Споделяне на анонимни данни с Lenovo Съдържание Споделяне на анонимни данни с Lenovo... 1 Harmony... 1 Lenovo Companion Lenovo Customer Engag

Анализ и оптимизация на софтуерни приложения

Анализ и оптимизация на софтуерни приложения

PowerPoint Presentation

Digital library 2.0

СТАНОВИЩЕ

Presentacia

ПРОГРАМНО ОСИГУРЯВАНЕ НА КОМПЮТЪРА

Microsoft PowerPoint - Model_Dec_2008_17_21

Машинно обучение - въведение

Slide 1

<4D F736F F D20D0E0E7FFF1EDE5EDE8E520EFEE20F7EB2E EEF220C7CECF20F120C8E7F52EB EEF E31312E3138E3>

Slide 1

Microsoft PowerPoint - IT_tool_notification

Графика и Презентации - Презентации

Проектът се осъществява с финансовата подкрепа на Оперативна Програма Развитие на Човешките Ресурси , Съфинансиран от Европейския Социален Фо

ТЕХНИЧЕСКА ИНФОРМАЦИЯ D3 ДИГИТАЛЕН КЪТЕР Вашият избор в дигиталното рязане

(пълно наименование на училището) Утвърждавам!... (име и фамилия, подпис, печат) ПРИМЕРНО ГОДИШНО РАЗПРЕДЕЛЕНИЕ НА УЧЕБНОТО СЪДЪРЖАНИЕ по инфор

РЕЦЕНЗИЯ от проф. д-р Красен Стефанов Стефанов на дисертационен труд на тема ИНСТРУМЕНТИ ЗА ПРЕДСТАВЯНЕ НА 3D ОБЕКТИ И КОЛЕКЦИИ В ИНТЕРНЕТ за придобив

Microsoft Word - kstB_kr.doc

ТЕХНИЧЕСКА ХАРАКТЕРИСТИКА WIFI SMART ДВУКАНАЛЕН КЛЮЧ Функции: Двуканален безжичен ON/OFF ключ. Управлява се от смартфон или таблет през интернет чрез

PowerPoint Presentation

РЕЦЕНЗИЯ от проф. д-р Красен Стефанов Стефанов на дисертационен труд на тема Оперативна съвместимост между цифрови библиотеки за културно наследство з

Никел-кадмиеви акумулатори на ФЕРАК с широк спектър на приложение Септември 2004

Release notes_V3.0_BG

Microsoft Word - Techn zad 2017-M1

10. Линейни оптимизационни модели – обща постановка

Control no:

Slide 1

Системи за управление на версии - Работа с git

Приложение на методите на Рунге Кута за решаване на уравненията за отравяне на ядрения реактор 1. Въведение В доклада са направени поредица от изчисле

Scanned Document

Видеорекордер АHD-3908 Ръководство за експлоатация Моделите от тази серия са отличен избор за цифрово наблюдение на обекти в различни сфери, където во

Печатница ЕА

Препис:

Анализ и оптимизация на софтуерни приложения Александър Пенев Васил Василев

Съдържание 1. Производителност 2. Оптимизация 3. Методи за оптимизация 2/18

Защо производителността е важна? Дава възможност за: По-добра интерактивност (време за отговор) Възможност за добавяне на повече функционалност По-добра скалируемост Използване на по-малко ресурси (енергия, памет,...) 3/18

По-добри времена за отговор ABS в автомобилите трябва да действа не по-бавно от хидравличната система MPEG декодер трябва да може да декодира минимум 20 кадъра в секунда Търсенето в Google трябва да има резултати за секунди Ако времената за отговор се разминават с очакванията софтуерната система е неизползваема 4/18

Възможност за добавяне на повече функционалност Ако наличната работа може да се извърши по-бързо, съкратеното времето за отговор би довело до: Възможност за добавяне на повече функционалност По-висококачествена обработка Обработка на по-големи обеми данни 5/18

По-добра скалируемост Добрите програми имат изключително интензивно натоварване: От стотици хиляди до милиони потребители ги използват Обработват се огромен брой документи и данни Тези програми трябва: Да могат да издържат на повишаващо се натоварване Да се справят лесно с неочаквани проблеми, дължащи се на скалирането 6/18

Използване на по-малко ресурси Повече инструкции за изпълнение води до повече изразходвана електроенергия Много от центровете със суперкомпютри са енергоограничени. През 2005 приблизително 1.2% от електрозахранването в САЩ е предназначено за суперкомпютри Обръща се сериозно внимание на мобилните устройства, захранващи се от батерии. Батерията на най-новия iphone издържа по-малко от 1 ден. Това означава, че не може да се добавя нова функционалност, ако не се удължи животът на батерията или приложенията не станат по-ефективни Скалирането на неефективни системи е много скъпо! 7/18

Оптимизация Например: Архитектът, проектиращ многоетажна сграда трябва да избере материалите и пропорциите за различните структурни компоненти на сградата, за да има безопасна сграда, която да е колкото може по-евтина Агрономът, ръководещ дадена плантация трябва да планира операциите върху растенията така, че да направи добивът максимален, като задоволява всички нужди на клиентите с минимални средства 8/18

Оптимизация В примерите лесно се забелязва: 1. Има крайна цел За архитекта, крайната цел е да минимизира разходите по построяване на сградата. За агронома да максимизира добива 2. Има изисквания или ограничения, които трябва да бъдат изпълнени Архитектът трябва да изпълни стандартите за безопасност, а агрономът трябва да задоволи нуждите на клиентите, като се съобрази с наличната работна сила и ограничените материали 3. Косвено е идеята, че има възможност за избор и ако е направен успешно ще бъде изпълнена крайната цел и изискванията едновременно 9/18

Оптимизация Неформално оптимизацията включва: Избиране на една или повече оптимизационни променливи Избиране на целева функция Определяне на множество ограничения 10/18

Оптимизиране на софтуер Извършва се по два начина: Хардуерно Заменят се хардуерните компоненти на компютърната система с нови, по-производителни Софтуерно Създават се по-оптимални (по-ефективни) програми или се оптимизират вече съществуващи Автоматизирано Оптимизацията се извършва от софтуерна система, специално разработена за целта Ръчно Оптимизацията се извършва от експерт 11/18

Оптимизирането на софтуер не е лесно Стъпки: Установяване, че има проблем с производителността Идентификация на местата, влошаващи производителността Установяване на основните причини, причиняващи проблемите Елиминиране на установените проблеми 12/18

Установяване, че има проблем Знаем как да намерим чрез тестване, валидация и верификация Обаче, колко близо е програмата до найпроизводителната възможна? Трудно е да се каже дори и когато програмата може да се оптимизира много Как да разберем дали производителността е добра? Чрез груби изчисления Чрез анализ на производителността Чрез тестване на скалируемостта Чрез сравнения с подобни програми Опит 13/18

Идентифициране на местата, влошаващи производителността Профайлинг (Profiling) на целевата програма Установяване къде се губи най-много време Очаква ли се? Или има проблем? Преглед на характеристиките на машината Нормално ли е поведението на инструкциите, кеша, паметта? Тестване за скалируемост Натоварване на програмата до краен предел Установяване кое може да се скалира и кое не Ако профайлинга променя прекалено много производителността резултатите не са надеждни! 14/18

Установяване на причините Изследване на алгоритъма Прекалено неефективен ли е алгоритъма Може ли някое от изчисленията да бъде елиминирано от критичния път Използвайки препроцесорна обработка, кеш... Изследване на структурите от данни и тяхното оформление (layout) Дали оформлението влияе на паметта? Изследване на структурата на програмата Дали структурата на програмата не води до генерация на лоши инструкции и забавяне на конвейера (stalls) Много от нещата се решават с опити и грешки 15/18

Обща схема Решаван проблем Дизайн, алгоритми, данни Високо ниво Входна програма (сорс код) Компилатори, библиотеки Архитектура на системата Средно ниво Архитектура на набора инстр. Микро-архитектура Ниско ниво Схеми 16/18

Елиминиране на проблемите Дизайн Много по-добре е дизайнът да се съобразява с производителността Неспазване на идеите в дизайна Понякога трябва да се нарушат добрите практики, залегнали в дизайна Придържане към основните принципи Простота, модулност, преносимост и т.н Не може да е за сметка на коректността 17/18

Елиминиране на проблемите Има нужда да се разбират всичките слоеве и тяхното значение и специфики Всички софтуерни слоеве Компилатора Процесора Системата Трябва да се спазват основните принципи: Не може да е за сметка на коректността 18/18