Profiler pro programovací jazyk R
Profiler for the R programming language
Typ dokumentu
diplomová prácemaster thesis
Autor
Karolina Hrnčiříková
Vedoucí práce
Křikava Filip
Oponent práce
Petříček Tomáš
Studijní obor
Systémové programováníStudijní program
InformatikaInstituce přidělující hodnost
katedra teoretické informatikyPráva
A university thesis is a work protected by the Copyright Act. Extracts, copies and transcripts of the thesis are allowed for personal use only and at one?s own expense. The use of thesis should be in compliance with the Copyright Act http://www.mkcr.cz/assets/autorske-pravo/01-3982006.pdf and the citation ethics http://knihovny.cvut.cz/vychova/vskp.htmlVysokoškolská závěrečná práce je dílo chráněné autorským zákonem. Je možné pořizovat z něj na své náklady a pro svoji osobní potřebu výpisy, opisy a rozmnoženiny. Jeho využití musí být v souladu s autorským zákonem http://www.mkcr.cz/assets/autorske-pravo/01-3982006.pdf a citační etikou http://knihovny.cvut.cz/vychova/vskp.html
Metadata
Zobrazit celý záznamAbstrakt
Jazyk R vyniká v průzkumu a analýze dat, ale často čelí výzvám v oblasti efektivity. R je dynamicky typováno, má automatický sběr paměti a co je nejdůležitější, jedna z jeho hlavních implementací, GNU R, interpretuje AST v kombinaci s kompilací just-in-time do bajtkódu. Všechny tyto faktory přispívají k tomu, že R je poměrně pomalý jazyk. Pro zlepšení výkonu jsou uživatelé nuceni přepisovat kód citlivý na výkon v C, C++ nebo ve Fortranu prostřednictvím balíčků. Zjistit, které segmenty kódu jsou pomalé, protože jsou prováděny v interpretu R, však není snadné, protože současné metody profilování nerozlišují mezi prováděním kódu nativně a v R. V této práci navrhujeme profiler, který dokáže rozlišit R a nativní vykonávání kódu. Inspirováni Scalene, profilerem pro Python, implementujeme do GNU R 4.3.3 prototyp našeho profileru. Profiler hodnotíme ve srovnání s Rprof, nejpoužívanějším R profilerem. V této práci navrhujeme profiler, který dokáže rozlišit R a nativní vykonávání kódu. Inspirováni Scalene, profilerem pro Python, implementujeme do GNU R 4.3.3 prototyp našeho profileru. Profiler hodnotíme ve srovnání s Rprof, nejpoužívanějším R profilerem. The R language excels in data exploration and analysis but often faces challenges regarding execution speed and efficiency. R is dynamically typed, has automatic memory collection, and, most importantly, one of its main implementations, GNU R, interprets AST in combination with just-in-time compilation into bytecode. All these factors contribute to R being a comparatively slow language. To improve performance, users are forced to rewrite performance-sensitive code in C, C++, or Fortran through packages. However, finding out which code segments are slow because they are executed in the R interpreter is not easy because the current profiling methods do not distinguish between native and R execution. In this thesis, we propose a profiler that can distinguish between R and native execution. Inspired by Scalene, a profiler for Python, we implement a proof-of-concept profiler into GNU R 4.3.3. We evaluate the profiler in comparison to Rprof, the most used R profiler.
Kolekce
- Diplomové práce - 18101 [221]