Cílem práce bylo vytvořit zásuvný modul pro vývojové prostředí CodeLite. Modul představuje dynamická knihovna umožňující vizualizovat profilovací informace překladače GCC. Vizualizace je řešena zobrazením grafu, ze kterého je zřejmé propojení jednotlivých uzlů s pomocí hran na základě vzájemného volání a vytížení funkcí v běžícím programu. Nastavení zásuvného modulu umožňuje filtrovat jednotlivé uzly a hrany dle jejich vytížení a snadněji tak porozumět chování běžícího programu. Graf volání funkcí lze využít k lepší identifikaci a optimalizaci nejčastěji prováděného kódu programu.
Anotace v angličtině
The aim of this work was to create a plug-in for development environment CodeLite. The module is a dynamic library, allowing visualizing profiling information of GCC interpreter. Visualization is solved by showing a graph from which the evident connections between the nodes with edges by mutual call and load level in a running program. Setting of plug-in allows filtering the nodes and edges according to their usage and allow easier understand the behavior of a running program. Call-Graph function can be used for better identification and optimizing of most frequently performed program code.
Cílem práce bylo vytvořit zásuvný modul pro vývojové prostředí CodeLite. Modul představuje dynamická knihovna umožňující vizualizovat profilovací informace překladače GCC. Vizualizace je řešena zobrazením grafu, ze kterého je zřejmé propojení jednotlivých uzlů s pomocí hran na základě vzájemného volání a vytížení funkcí v běžícím programu. Nastavení zásuvného modulu umožňuje filtrovat jednotlivé uzly a hrany dle jejich vytížení a snadněji tak porozumět chování běžícího programu. Graf volání funkcí lze využít k lepší identifikaci a optimalizaci nejčastěji prováděného kódu programu.
Anotace v angličtině
The aim of this work was to create a plug-in for development environment CodeLite. The module is a dynamic library, allowing visualizing profiling information of GCC interpreter. Visualization is solved by showing a graph from which the evident connections between the nodes with edges by mutual call and load level in a running program. Setting of plug-in allows filtering the nodes and edges according to their usage and allow easier understand the behavior of a running program. Call-Graph function can be used for better identification and optimizing of most frequently performed program code.
Vytvořte rešerši na téma profilování programového kódu a měření výkonu aplikací.
Vytvořte rešerši na téma profilování aplikací pomocí nástroje gprof.
Pomocí programovacího jazyka C/CPP, knihovny wxWidgets a nástrojů gprof a Graphviz vytvořte zásuvný modul pro IDE CodeLite schopný grafickou a tabulkovou formou vizualizovat informace z profileru překladače.
Vizualizujte časové statistiky běhu programu a využití volaných funkcí.
Modul publikujte pod licencí GPL v2.
Vytvořte programovou a uživatelskou dokumentaci.
Zásady pro vypracování
Vytvořte rešerši na téma profilování programového kódu a měření výkonu aplikací.
Vytvořte rešerši na téma profilování aplikací pomocí nástroje gprof.
Pomocí programovacího jazyka C/CPP, knihovny wxWidgets a nástrojů gprof a Graphviz vytvořte zásuvný modul pro IDE CodeLite schopný grafickou a tabulkovou formou vizualizovat informace z profileru překladače.
Vizualizujte časové statistiky běhu programu a využití volaných funkcí.
Modul publikujte pod licencí GPL v2.
Vytvořte programovou a uživatelskou dokumentaci.
Seznam doporučené literatury
BLIŽŇÁK, Michal. Systémové programování. 1. vyd. Zlín: UTB ve Zlíně, 2005. 202 s. ISBN 80-7318-364-1
MASTERS, Jon. Linux profesionálně: programování aplikací. 1.vyd. Brno: Zoner Press, 2008. 539 s. ISBN 978-80-86815-71-8
SMART, Julian, HOCK, Kevin. Cross-Platform GUI Programming with wxWidgets, Prentice Hall, 2006, ISBN 0-13-147381-6
PRATA, S. Mistrovství v C++: Computer Press, 2007, 3. vydání, 1120s, ISBN 978-80-251-1749-1
CORMEN, T. H., LEISERSON, Ch. E., RIVEST, R. L., STEIN, C: Introduction to Algorithms, The MIT Press, Cambridge, 2009, 3rd edition, ISBN 978-0-262-03384-8
STEELE, J, ILIINSKI, N: Beautiful Visualization, O\' Reilly Media, Inc., Sebastopol, 2010, ISBN 978-1-449-37986-5
GANSNER, E.R., NORTH, S.C. An open graph visualization system and its applications to software engineering. Softw. Pract. Exper. 30, 11 (Sep. 2000), pp. 1203-1233, ISSN 0038-0644
Seznam doporučené literatury
BLIŽŇÁK, Michal. Systémové programování. 1. vyd. Zlín: UTB ve Zlíně, 2005. 202 s. ISBN 80-7318-364-1
MASTERS, Jon. Linux profesionálně: programování aplikací. 1.vyd. Brno: Zoner Press, 2008. 539 s. ISBN 978-80-86815-71-8
SMART, Julian, HOCK, Kevin. Cross-Platform GUI Programming with wxWidgets, Prentice Hall, 2006, ISBN 0-13-147381-6
PRATA, S. Mistrovství v C++: Computer Press, 2007, 3. vydání, 1120s, ISBN 978-80-251-1749-1
CORMEN, T. H., LEISERSON, Ch. E., RIVEST, R. L., STEIN, C: Introduction to Algorithms, The MIT Press, Cambridge, 2009, 3rd edition, ISBN 978-0-262-03384-8
STEELE, J, ILIINSKI, N: Beautiful Visualization, O\' Reilly Media, Inc., Sebastopol, 2010, ISBN 978-1-449-37986-5
GANSNER, E.R., NORTH, S.C. An open graph visualization system and its applications to software engineering. Softw. Pract. Exper. 30, 11 (Sep. 2000), pp. 1203-1233, ISSN 0038-0644
Přílohy volně vložené
1x CD ROM
Přílohy vázané v práci
-
Převzato z knihovny
Ne
Plný text práce
Přílohy
Posudek(y) oponenta
Hodnocení vedoucího
Záznam průběhu obhajoby
Student seznámil komisi s obsahem a výsledky své diplomové práce v krátké prezentaci. Po přečtení posudků vedoucího a oponenta práce následovala diskuze, ve které byly položeny následující dotazy:
dr. Křivka: Co je dle Vás hlavním důvodem uvádění časů v gprof v sekundách s přesností pouze na dvě desetinná místa?
Na začátku kapitoly 5.2 píšete, že vizualizace profilových informací pomůže i s odhadem asymptotické složitosti aplikace. Můžete vysvětlit jak?
Prováděl jste nějaké testy výkonnosti Vašeho řešení, zda je použitelné na projekty s běžnou velikostí několika tisíc řádků kódu?
dr. Šilhavý: Jak si představujete funkci UC Kontrola programu?
Student na položené dotazy odpověděl. Následovalo zkoušení ze tří předmětů.