Pobieranie prezentacji. Proszę czekać

Pobieranie prezentacji. Proszę czekać

DEREKURSYWACJA I OPTYMALIZACJA KODU Adam Kościelniak IiE III: Ekonometria.

Podobne prezentacje


Prezentacja na temat: "DEREKURSYWACJA I OPTYMALIZACJA KODU Adam Kościelniak IiE III: Ekonometria."— Zapis prezentacji:

1 DEREKURSYWACJA I OPTYMALIZACJA KODU Adam Kościelniak IiE III: Ekonometria

2 Derekursywacja Derekursywacja - przemiana algorytmów rekurencyjnych (rekursyjnych) na iteracyjne. Stosuje się ją w celu zwiększenia szybkości działania aplikacji (korzystającej z algorytmów rekurencyjnych) oraz zmniejszenia jej zajętości pamięciowej.

3 Iteracja Iteracja (łac. iteratio ‘powtórzenie’) to czynność powtarzania (najczęściej wielokrotnego) tej samej instrukcji (albo wielu instrukcji) w pętli. Mianem iteracji określa się także operacje wykonywane wewnątrz takiej pętli.

4 Rekurencja Rekurencja albo rekursja (ang. recursion, z łac. recurrere, przybiec z powrotem) to w logice, programowaniu i w matematyce odwoływanie się np. funkcji lub definicji do samej siebie.

5 Porównajmy IteracyjnieRekurencyjnie

6 Mierzenie czasu wykonania Po modyfikacji kodu możemy mierzyć efektywność algorytmu dla różnej liczby wykonań :

7 Wyniki dla silni RekurencjaIteracja 10000: sekund : sekund : sekund 10000: sekund : sekund : sekund

8 Optymalizacja kodu

9 Preferuj inicjalizację na przypisanie Weźmy pod uwagę przykład: W ten sposób oszczędzamy kompilatorowi pracy ponieważ nie musi się on po raz kolejny odwoływać do costructora typu complex (zdefiniowany wcześniej w programie typ – liczba zespolona)

10 Rozmiar struktur Staraj się tworzyć struktury których rozmiar jest potęgą dwójki

11 Zakres Case’ów Staraj się utrzymywać Case w wąskim zakresie 1Zrób 1 2Zrób 2 3Zrób 3 4Zrób 4 defZrób 5

12 Rozbijanie dużych switchy Duże switche możemy rozbijać na ciągi switchy zagnieżdżonych (nested). Znacznie zmieniejsza to ilość wykonanych porównań.

13 Jak najmniej zmiennych lokalnych Jeśli utrzymamy liczbę zmiennych lokalnych kompilator przetrzyma je wszystkie w rejestrach.

14 Zredukuj ilość parametrów Jeśli funkcja używa dużej ilości parametrów każde wywołanie będzie wymagało operacji na stosach. Z tego samego powodu należy unikać przekazywania całych struktur jako parametry, używaj wskaźników i referencji. Struktura Funkcja *Wskaźnik

15 Idąc dalej… Najlepiej ogólnie obiektów większych niż 4 bajty nie powinno się kopiować do funkcji a używac wskaźnika Funkcja 8

16 Preferuj int nad char i short Kiedy to tylko możliwe preferuj integer and char Pobierz wartości zmiennych Konwertuj na integer Wykonaj działanie Pobierz wartości zmiennych Wykonaj działanie

17 In line: Gdy twoje funkcje są małe poprzedź je wyrażeniem stałym „inline”

18 Pytanie kontrolne I Rekurencja to: a) Funkcja języka C++ b) Typ zmiennej c) Odwoływanie się funkcji do samej siebie d) Cecha estymatora klasycznej metody najmniejszych kwadratów

19 Pytanie kontrolne II Derekursywacji dokonujemy w celu: a) Zwiększenia wydajności programu b) Jest to czysto akademicka teoria c) Uporządkowania kodu d) Jest konieczna aby program uruchomił się na linuxie

20 Pytanie kontrolne III Co jest szybsze: a) Rekurencja b) Iteracja c) Nie ma różnicy d) Jest to zależne od procesora

21 Pytanie kontrolne IV Duże switche najlepiej: a) Rozdzielać na mniejsze b) Zagnieżdżać w sobie c) Odradza się używanie switchy d) Żadna z powyższych odpowiedzi


Pobierz ppt "DEREKURSYWACJA I OPTYMALIZACJA KODU Adam Kościelniak IiE III: Ekonometria."

Podobne prezentacje


Reklamy Google