Optymalizacja programów Open Source. Profilery wysokiego poziomu część 2. Krzysztof Lichota

Podobne dokumenty
Optymalizacja programów Open Source. Profilery wysokiego poziomu część 1. Krzysztof Lichota

Optymalizacja programów Open-Source. Dostęp do dysku. Krzysztof Lichota

GNU GProf i GCov. przygotował: Krzysztof Jurczuk Politechnika Białostocka Wydział Informatyki Katedra Oprogramowania ul. Wiejska 45A Białystok

Optymalizacja programów Open-Source. Pamięć część 1. Krzysztof Lichota

NETBEANS PROFILER TOMASZ ŁUKASZUK

Monitorowanie wydajność w bazie Oracle11g

PLUTO Sterownik bezpieczeństwa Skrócona Instrukcja obsługi oprogramowania. PlutoProgrammingManualPL_v7A.pdf 1

Diagnostyka pamięci RAM

Win Admin Monitor Instrukcja Obsługi

Budowa systemów komputerowych

Tworzenie oprogramowania

Sposoby wykrywania i usuwania błędów. Tomasz Borzyszkowski

1. Aplikacja LOGO! App do LOGO! 8 i LOGO! 7

Fragment wykładu z języka C ( )

Systemy Operacyjne. Ćwiczenia

ArtPlayer oprogramowanie do odtwarzania plików video sterowane Artnet/DMX V1.0.1

Spis treści. Wstęp... 10

Spis treści. Dzień 1. I Konfiguracja sterownika (wersja 1410) II Edycja programu (wersja 1406) III Środowisko TIA Portal (wersja 1410)

Instrukcja użytkownika ARSoft-WZ3

1. Opis. 2. Wymagania sprzętowe:

SYSTEMY OPERACYJNE I SIECI KOMPUTEROWE

Arkadiusz Kalicki, Lech Mankiewicz Plugin Webcam dla SalsaJ Podręcznik użytkownika

GRUB (GRand Unified Bootloader) - jest bootloaderem instalowanym standardowo w Ubuntu, potrafiącym obsłużyć kilka systemów jednocześnie (Multiboot).

Laboratorium - Monitorowanie i zarządzanie zasobami systemu Windows 7

Programowanie Systemów Wbudowanych

1. Pierwszy program. Kompilator ignoruje komentarze; zadaniem komentarza jest bowiem wyjaśnienie programu człowiekowi.

znajdowały się różne instrukcje) to tak naprawdę definicja funkcji main.

Laboratorium : Tworzenie partycji w Windows XP Pro

Q E M U.

Piotr Dwieczkowski. Code coverage. Mierzenie pokrycia kodu, teoria oraz praktyka w C/C++

SYSTEM OPERACYJNY. Monika Słomian

Język JAVA podstawy. wykład 1, część 2. Jacek Rumiński. Politechnika Gdańska, Inżynieria Biomedyczna

Programowanie mikrokontrolerów AVR

KATEGORIA OBSZAR WIEDZY

Narzędzia administracyjne Windows XP

K. Konopko; Toolchain. Jądro Linuksa. dr inż. Krzysztof Konopko

System operacyjny Linux

Linux is linux is linux?

Spis treści. I. Skuteczne. Od autora... Obliczenia inżynierskie i naukowe... Ostrzeżenia...XVII

Działanie systemu operacyjnego

Podręcznik KBlocks. Mauricio Piacentini Polskie tłumaczenie: Krzysztof Woźniak

1) Czym jest architektura systemu Windows 7 i jak się ją tworzy? 2) Jakie są poszczególne etapy uruchomienia systemu Windows 7?

Analizator wydajności AMD CodeAnalyst

Programy użytkowe (utilities)

Przykładowe sprawozdanie. Jan Pustelnik

Technologia znaku wodnego dla plików dźwiękowych: Legimi Audio Watermark

NS-2. Krzysztof Rusek. 26 kwietnia 2010

Instrukcja do laboratorium Systemów Operacyjnych. (semestr drugi)

Optymalizacja programów Open Source. Krzysztof Lichota

Optymalizacja programów Open-Source. Optymalizacja czasu uruchamiania programu. Krzysztof Lichota

Politechnika Białostocka Wydział Elektryczny Katedra Automatyki i Elektroniki

Cechy systemu X Window: otwartość niezależność od producentów i od sprzętu, dostępny kod źródłowy; architektura klient-serwer;

Prezentacja emulatora QEMU Zajęcia SO

1 Zapoznanie się ze środowiskiem Xenomai.

Laboratorium - Monitorowanie i zarządzanie zasobami systemu Windows Vista

Na podstawie: MS Project 2010 i MS Project Server Efektywne zarządzanie projektem i portfelem projektów, Wilczewski S.

Podręcznik Kollision. Paolo Capriotti Aktualizacja polskiego tłumaczenia: Krzysztof Woźniak

projektowanie systemu

Jak utworzyć diagram

Wstęp 7 Rozdział 1. OpenOffice.ux.pl Writer środowisko pracy 9

IdyllaOS. Prosty, alternatywny system operacyjny. Autor: Grzegorz Gliński. Kontakt:

Techniki programowania INP001002Wl rok akademicki 2018/19 semestr letni. Wykład 8. Karol Tarnowski A-1 p.

Ćwiczenie Zmiana sposobu uruchamiania usług

Laboratorium Informatyka (I) AiR Ćwiczenia z debugowania

ArtPlayer. Odtwarzacz plików video sterowany poprzez Artnet/DMX V Instrukcja obsługi.

Architektury Usług Internetowych. Laboratorium 2. Usługi sieciowe

Laboratorium - Zarządzanie systemem plików poprzez wbudowane oprogramowanie w systemie Windows XP

Politechnika Łódzka. Instytut Systemów Inżynierii Elektrycznej. Laboratorium cyfrowej techniki pomiarowej. Ćwiczenie 4

Wstęp 5 Rozdział 1. SUSE od ręki 13

Optymalizacja programów Open Source. Pamięć część 3. Krzysztof Lichota

Administracja i programowanie pod Microsoft SQL Server 2000

Działanie systemu operacyjnego

Dział Dopuszczający Dostateczny Dobry Bardzo dobry Celujący

HELIOS pomoc społeczna

Działanie systemu operacyjnego

Laboratorium - Zarządzanie systemem plików poprzez wbudowane oprogramowanie w systemie Windows 7

Laboratorium - Zarządzanie systemem plików poprzez wbudowane oprogramowanie w systemie Windows Vista

Krótka Historia. Co to jest NetBeans? Historia. NetBeans Platform NetBeans IDE NetBeans Mobility Pack Zintegrowane moduły. Paczki do NetBeans.

CPT-CAD - Program do tworzenia dokumentacji geologicznej i geotechnicznej

X P.I.W.O. Portowanie Tizena na nowe architektury na przykładzie ARMv6. Maciej Wereski Samsung R&D Institute Poland. 17 Maj Poznań, Polska

Procesy pojęcia podstawowe. 1.1 Jak kod źródłowy przekształca się w proces

Panel Produkcyjny by CTI. Instrukcja

Poniższe funkcje opisane są w 2 i 3 części pomocy systemowej.

WYKŁAD 3 Jądro systemu i procesy. Marcin Tomana Wyższa Szkoła Informatyki i Zarządzania

Struktura systemu operacyjnego. Opracował: mgr Marek Kwiatkowski

Systemy operacyjne i sieci komputerowe. 1 SYSTEMY OPERACYJNE I SIECI KOMPUTEROWE. Etapy uruchamiania systemu

MentorGraphics ModelSim

SERWER AKTUALIZACJI UpServ

Wymagania edukacyjne z informatyki dla klasy szóstej szkoły podstawowej.

WYDZIAŁ ELEKTRYCZNY KATEDRA TELEKOMUNIKACJI I APARATURY ELEKTRONICZNEJ. Pracownia specjalistyczna. Numer ćwiczenia: 5.

Instrukcja obsługi testera samochodowego akumulatora AV5

Modułowy programowalny przekaźnik czasowy firmy Aniro.

Warsztaty AVR. Instalacja i konfiguracja środowiska Eclipse dla mikrokontrolerów AVR. Dariusz Wika

Działanie systemu operacyjnego

KATEGORIA OBSZAR WIEDZY

Jeśli chcesz łatwo i szybko opanować podstawy C++, sięgnij po tę książkę.

Laboratorium - Tworzenie partycji w Windows XP

Konfiguracja wyszukiwania na. Sebastian Trueg Polskie tłumaczenie: Krzysztof Woźniak

Delphi podstawy programowania. Środowisko Delphi

Programowanie I. O czym będziemy mówili. Plan wykładu nieco dokładniej. Plan wykładu z lotu ptaka. Podstawy programowania w językach. Uwaga!

Transkrypt:

Optymalizacja programów Open Source Profilery wysokiego poziomu część 2 Krzysztof Lichota lichota@mimuw.edu.pl

gprof

gprof Pomiar działa na zasadzie instrumentacji kompilowanego kodu (wejścia i wyjścia z funkcji) oraz okresowego sprawdzania stosu (co określony czas działania programu, żeby przypisać czas) Program musi być zrekompilowany z odpowiednią opcją gcc Uruchomiony program generuje plik ze statystykami (gmon.out) Program gprof analizuje plik ze statystykami i przedstawia wyniki. Narzut niewielki (ale większy niż np. Google profiler)

Zalety gprof Dokładnie zlicza wejścia i wyjścia z funkcji Dostępny na większości instalacji Linuksa Można włączyć profiling tylko dla niektórych modułów programu (przy kompilacji) Stanowi standard, niektóre inne narzędzia generują wyniki w jego formacie, więc narzędzia obsługujące gprof działają także tam. Informacje z profilowania mogą być użyte do sterowania rekompilacją

Wady gprof Wymaga rekompilacji programu i bibliotek używanych przez program Nie pokazuje, kiedy program śpi (np. z powodu wejścia/wyjścia albo swapowania) Czas jest zliczany przez próbkowanie i przypisywany do funkcji na podstawie liczby wystąpień (z założeniem, że każde wykonanie funkcji trwa tyle samo), więc jest to niedokładne

Użycie gprof kompilacja Trzeba skompilować i zlinkować program z opcją pg (przydaje się też g do informacji o liniach w programie i fprofile arcs do instrumentacji bloków prostych) W przypadku systemu budowania autotools można użyć: CFLAGS=" pg O0" LDFLAGS= pg CPPFLAGS=" pg O0"./configure Lub jeśli jest dostępne to:./configure enableprofile Żeby uzyskać dobre wyniki należy zrekompilować również biblioteki (niektóre już są, np. libc_p.a).

Użycie gprof uruchomienie Program uruchamia się normalnie, bez dodatkowych opcji Przy zakończeniu program zapisuje plik gmon.out w bieżącym katalogu Jeśli nie ma się praw zapisu do bieżącego katalogu, plik nie zostanie zapisany Jeśli program zostanie zakończony w niespodziewany sposób (nie przez exit()), to plik też nie zostanie zapisany

Użycie gprof wyświetlanie wyników Zwykłe wywołanie: gprof opcje programwykonywalny gmon.out >plik.txt (generuje tekstowe podsumowanie z czasem wykonywania dla poszczególnych funkcji i drzewem wywołań) Opcja annotated source wyświetla kod programu z anotacją o czasie przebywania w danym miejscu Opcje exec counts l pokazują ile czasu program spędził w każdym bloku prostym Opcja line pokazuje liczbę wywołań dla każdej linii programu

Użycie gprof wyświetlanie wyników (2) Istnieją narzędzia do graficznego przedstawiania wyników gprof (np. kprof dla KDE) Mogą one wyświetlać wyniki również innych profilerów używających formatu gprof

Inne przydatne rzeczy w gprof Ponieważ dane są zbierane przez próbkowanie, są niedokładne. Można skumulować dane z kilku uruchomień za pomocą opcji s (dokładny opis w info dla gprof).

Rekompilacja z profilingiem Instrumentacja gcc do profilowania (opcja fprofilegenerate) może służyć również do podpowiedzenia kompilatorowi jak optymalnie kompilować przy powtórnej kompilacji. Więcej na zajęciach z profilowania niskiego poziomu.

bootchart

bootchart Zbiera dane podczas uruchomienia i generuje wykres obrazujący zachowanie systemu w czasie profilowania Zbiera informacje (z /proc) o zużyciu CPU (w tym o czasie zużytym na I/O) stopniu użycia dysków uruchomionych programach i co robią (używają CPU, czekają na I/O). Uruchomienie następuje w momencie uruchomienia systemu (przez modyfikację initrd) Zatrzymanie poprzez uruchomienie usługi bootchart stop

bootchart (2) W initrd uruchamiany jest proces, który co jakiś czas budzi się i zbiera informacje z /proc Narzut niewielki, ale jeśli jest dużo procesów może się zwiększyć (informacje z /proc są zbierane dla wszystkich procesów)

Zalety bootchart Profiling od momentu uruchomienia systemu Przejrzyste, graficzne przedstawienie wyników Zbiorcze przedstawienie tego, co się dzieje w systemie Możliwość użycia do profilowania również innych fragmentów działania systemu niż start Pokazuje jakie procesy są uruchomione i kiedy oraz kiedy śpią Pokazuje środowisko w którym został uruchomiony (wersja jądra, opcje, itp.) Stosunkowo łatwo można go modyfikować

Wady bootchart Nie pokazuje zużycia pamięci Z powodu próbkowania może nie pokazać krótko żyjących procesów

Na co należy zwrócić uwagę Procesy, które nie działają nie są pokazywane na wykresie, tak samo krótko żyjące procesy, takie same procesy mogą zostać sklejone Generowanie wykresu zajmuje dużo procesora i może zaburzyć dalsze działania Czas jest liczony od momentu uruchomienia bootchart, czas na załadowanie jądra i rozpakowanie go (oraz czas uruchomienia BIOS u) nie jest wliczany Domyślnie dane, z których był wygenerowany wykres są wyrzucane

Instalacja bootchart Zainstalować paczkę z dystrybucji Uaktualnić initrd (np. w Ubuntu update initramfs ).

Bibliografia http://www 128.ibm.com/developerworks/linux/library/l gn info:gprof http://bootchart.org/ http://docs.freebsd.org/44doc/psd/18.gprof/paper.pdf http://sourceware.org/binutils/docs/gprof/index.html