WWW.BOOK.LIB-I.RU
БЕСПЛАТНАЯ  ИНТЕРНЕТ  БИБЛИОТЕКА - Электронные ресурсы
 

«Никита Юдин Н. Е. Юдин Proling 14 ноября 2016 г. 1 / 37 We should forget about small eciencies, say about 97% of the time: premature optimization is the root of all evil. Donald Knuth Профилирование ...»

Профилирование в Python

для ускорения вычислений

Практикум на ЭВМ 317 группы

Никита Юдин

Н. Е. Юдин Proling 14 ноября 2016 г. 1 / 37

We should forget about small eciencies, say about 97% of the time:

premature optimization is the root of all evil.

Donald Knuth

Профилирование сбор статистики во время работы программы.

В дальнейшем будет рассмотрено использование памяти и измерение

времени работы.

Н. Е. Юдин Proling 14 ноября 2016 г. 2 / 37 Содержание презентации Профилирование памяти Pympler Профилирование времени Стандартные средства kernprof в IPython Notebook vprof pprole Визуализация результатов prolestats2.0 pyprof2calltree gprof2dot RunSnakeRun SnakeViz Н. Е. Юдин Proling 14 ноября 2016 г. 3 / 37 Pympler proler Pympler - средство разработки для измерения, наблюдения и анализа поведения объектов Python в работающем приложении Python.

Установка: $pip install pympler

Пример использования функции asizeof:

§ from pympler import asizeof obj = [1, 2, (3, 4), ’ text ’] asizeof. asizeof ( obj ) print asizeof. asized ( obj, detail =1). format () [1, 2, (3, 4), ’ text ’] size =176 flat =48 (3, 4) size =64 flat =32 ’ text ’ size =32 flat =32 1 size =16 flat =16 2 size =16 flat =16 ¦ Н. Е. Юдин Proling 14 ноября 2016 г. 4 / 37 Pympler proler Для детектирования утечек памяти у Pympler есть модуль muppy.

Пример использования трекера изменения памяти:

§ from pympler import tracker tr = tracker. SummaryTracker () ¦ Точка выполнения, до которой ничего не изменилось § tr. print_diff () types | # objects | total size ======= | =========== | ============ ¦ Н. Е. Юдин Proling 14 ноября 2016 г. 5 / 37 Pympler proler Добавим объектов § i = 1 l = [1,2,3,4] d = {} tr. print_diff () types | # objects | total size ======= | =========== | ============ dict | 1 | 280 B list | 1 | 192 B ¦ Память, занимаюмую числами, не отображает для них память была выделена раньше в другом месте интерпретации.

Н.

–  –  –

Профилирование памяти Pympler Профилирование времени Стандартные средства kernprof в IPython Notebook vprof pprole Визуализация результатов prolestats2.0 pyprof2calltree gprof2dot RunSnakeRun SnakeViz

–  –  –

Python имеет соответствующие модули для профилирования:

1) cProle

2) prole

3) pstats - обработка статистики § import cProfile, pstats, io

–  –  –

Главная особенность построчное профилирование программы. Есть возможность использования Cprole.

Установка:

$pip install line_proler. Пример использования в командной строке:

$ kernprof -l script_to_prole.py В самом скрипте нужно профилируемые функции обернуть декоратором @prole § @profile

–  –  –

пакет, предоставляющий интерактивные визуализации Python vprof программ для таких характеристик, как время выполнения и использование памяти. Установка: $pip install vprof.

Использование: $vprof -c modes program c граф вызовов функций m статистика использования памяти h тепловая подсветка кода (часто выполняемые участки ярче)

–  –  –

pprole профилировщик со спецификацией для работы с нитями, написанный на чистом Python (https://github.com/vpelletier/pprole).





Использование в командной строке:

$pprole some_python_executable arg1...

Сохранение в формат Callgrind Prole Format для просмотра в

kcachegrind(или в qcachegrind):

$pprole –format callgrind –out cachegrind.out.threads demo/threads.py

–  –  –

Профилирование памяти Pympler Профилирование времени Стандартные средства kernprof в IPython Notebook vprof pprole Визуализация результатов prolestats2.0 pyprof2calltree gprof2dot RunSnakeRun SnakeViz

–  –  –

Декоратор для профилирования отдельных функций и преобразования результатов в формат, пригодный для визуализации с помощью kcachegrind/qcachegrind(Qt) (анализатор дерева вызовов) Загрузить данный декоратор можно из https://pypi.python.org/pypi/prolestats/

Пример использования:

§ from profilestats import profile @profile ( print_stats =10, dump_stats = True )

–  –  –

Передаваемые аргументы:

1) cumulative (default: True) - собирать данные для нескольких вызовов в один отчёт

2) print_stats (default: 0) - длина вывода

3) sort_stats (default: ‘cumulative’) - тип сортировки статистики

4) dump_stats (default: False) - сохранять в файл

5) prole_lename (default: ‘prolestats.out’) - отчёт в формате Python

6) callgrind_lename (default: ‘callgrind.out’) - отчёт в формате kqcachegrind

Н. Е. Юдин Proling 14 ноября 2016 г. 23 / 37pyprof2calltree

pyprof2calltree пакет, содержащий в себе скрипт, позволяющий визуализировать результаты профилирования cProle с помощью графического анализатора дерева вызовов kcachegrind.

Загрузить пакет можно из https://pypi.python.org/pypi/pyprof2calltree/

–  –  –

gprof2dot Python скрипт, преобразующий вывод из многих профилировщиков в формат dot graph.

Установка: $pip install gprof2dot Использование: $gprof2dot.py [options] [le]...

Пример визуализации: (dot из пакета graphviz)

gprof:

$/path/to/your/executable arg1 arg2 $gprof path/to/your/executable | gprof2dot.py | dot -Tpng -o output.png

python prole:

$python -m prole -o output.pstats path/to/your/script arg1 arg2 $gprof2dot.py -f pstats output.pstats | dot -Tpng -o output.png

–  –  –

RunSnakeRun простая программа для просмотра результатов профилирования cProle, Prole.

Особенности:

Сортируемая сетка данных Дерево вызовов Просмотр пакетов, модулей, функций

Пример визуализации вывода cProle:

§ import cProfile

–  –  –

SnakeViz браузерный визуализатор вывода профилировщика cProle. Создание данного пакета было вдохновлено программой RunSnakeRun. Установка: $pip install snakeviz.

Пример использования: $snakeviz program.prof В SnakeViz входит также IPython magic.

–  –  –

https://pythonhosted.org/Pympler/ https://docs.python.org/3/library/prole.html https://github.com/rkern/line_proler https://github.com/nvdv/vprof https://github.com/vpelletier/pprole https://pypi.python.org/pypi/prolestats/ https://pypi.python.org/pypi/pyprof2calltree/ https://github.com/jrfonseca/gprof2dot http://www.vrplumber.com/programming/runsnakerun/ https://jiyclub.github.io/snakeviz/




Похожие работы:

«SOLN MLNY A.S. OLOMOUC Нитритная смесь с солью Praganda® Нитритная смесь с солью Praganda® (так называемая "быстросоль") применяется для маринования и предварительной обработки мяса, предназначенного для дальнейшего использования в мясных изделиях, консервах и полуфабрикатах. Смесь о...»

«73/2010-35858(2) Арбитражный суд Республики Коми Республика Коми, г. Сыктывкар, ул. Орджоникидзе, д. 49а http://komi.arbitr.ru/, тел. 30-08-37 Именем Российской Федерации РЕШЕНИЕ г. Сыктывкар "08" июня 2010 года Дело № А29-2950/2010 "03" июня 2010 года дата объявления резо...»

«22. Spencer S., 2007 „Immigration in: Seldon A. (ed.) 2007 „Blairs Britain 1997-2007, Cambridge: Cambridge University Press, pp. 341 – 360.23. Van Selm J., Tsolakis E., 2004 „EU Enlargement and the Limits of Freedom. Migration Policy Institute. Avail...»

«Сообщение о существенном факте "Сведения об этапах процедуры эмиссии ценных бумаг"1. Общие сведения 1.1. Полное фирменное наименование эмитента "Газпромбанк" (Акционерное общество) 1.2. Сокращенное фирменное наименование Банк ГПБ (АО) эмитента 1.3. Место нахождения эмитента г. Москва 1.4. ОГРН эми...»

«Информация Конкурс "Развитие НТИ" направлен на отбор проектов, предполагающих выполнение НИОКР в целях реализации планов мероприятий ("дорожных карт") Национальной технологической инициативы (далее – НТИ):аэронет (распределенные системы беспилотных летательных аппаратов);автонет (рынок беспилотных автотранспортных средств, основанный на развитии сенсо...»

«В ПОМОЩЬ ВОЖАТОМУ ПОДСКАЗКИ на любой случай Сборник подготовлен Государственным бюджетным образовательным учреждением “Центр творческого развития и гуманитарного образования “Дар” г. Москва. 2013 г.Авторысоставители: Фирсов Л.В., Лимонова Е.Ф., Ружникова В.О., Сиворонова Е.А...»

«Условия использования (веб-сайт) Прочтите следующие условия использования (далее — Условия использования), чтобы понять, каким образом будут обрабатываться ваши персональные данные при использовании, загрузке или другом взаимодействии...»

«Научно-практический журнал основан в 1996 году УЧЕНЫЕ ЗАПИСКИ Санкт-Петербургского имени В.Б. Бобкова филиала Российской таможенной академии № 2 (50) РЕДАКЦИОННАЯ КОЛЛЕГИЯ Аграшенков Александр Васильевич – к.и.н., доцент (главный редактор) Баринова Ольга Владимировна – к.х.н., до...»








 
2017 www.book.lib-i.ru - «Бесплатная электронная библиотека - электронные ресурсы»

Материалы этого сайта размещены для ознакомления, все права принадлежат их авторам.
Если Вы не согласны с тем, что Ваш материал размещён на этом сайте, пожалуйста, напишите нам, мы в течении 1-2 рабочих дней удалим его.