? Анимация и создание сайтов
Анимация
JavaScript


Главная  Библионтека 

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 [ 110 ] 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145

25.2.2 profile - замер производительности

Основная функция модуля:

run(string [, filename ...])

Выполняет инструкции в строке string (с помощью инструкции exec ) и выводит статистическую информацию в файл с именем filename (по умолчанию используется sys.stdout). В заголовке выводимого профиля указывается строка с инструкциями string, общее число вызовов функций, число примитивных вызовов (без рекурсии) и затраченное время. Далее следует шесть колонок с подробной информацией для каждой функции:

ncalls

число вызовов (может быть два числа: общее число вызовов функции, число примитивных вызовов);

tottime

суммарное время, затраченное на выполнение функции, исключая время, затраченное на вызовы из нее других функций;

percall

среднее время, затрачиваемое на один вызов функции, исключая время, затраченное на вызовы из нее других функций (tottime/ncalls);

cumtime

суммарное время, затраченное на выполнение функции и вызовы из нее других функций;

percall

среднее время, затрачиваемое на один вызов функции и на вызовы из нее других функций (cumtime/ncalls);

filename:lineno(function)

имя файла, номер строки и имя функции.

Для реализации функции run() используется определенный в этом модуле класс Profile. Кроме того, модуль profile определяет класс HotProfile производный от Profile, который обеспечивает более быстрый замер производительности, но не подсчитывает зависимости между функциями и суммарное время, затраченное на выполнение функции и вызовы из нее других функций (колонка cumtime).

p.print stats( init )

Если же Вас интересует, из каких функций вызываются конструкторы, или наоборот, какие функции используются в конструкторах, воспользуйтесь следующими инструкциями соответственно:

p.print callers( init )

p.print callees( init )



25.2.3 pstats - обработка статистических данных и вывод отчетов

Stats ([filename ...])

Создает и возвращает объект, реализующий обработку статистических данных о производительности из файла (или нескольких файлов, в этом случае данные объединяются) filename. Файлы должны быть созданы модулем profile, имеющим соответствующую версию (совместимость формата файлов для различных версий не гарантируется). После создания объекта дополнительные файлы могут быть прочитаны с помощью метода add() .

Экземпляры класса Stats имеют следующие методы: strip dirs()

Удаляет начало пути для всех имен файлов (оставляет только основные имена). Эта операция может быть полезна для того, чтобы уменьшить размер вывода, но может привести (редко) к неразличимости имен функций.

add ([filename ...])

Считывает статистическую информацию из указанных файлов и объединяет ее с ранее считанной.

sort stats ([key ...])

Сортирует статистические данные объекта в соответствии с указанными критериями. Если указано более одного ключа, дополнительные ключи используются в качестве вторичного и т. д. критериев. Например, sort stats(name, file) сортирует данные по имени функции и данные для функций с одинаковыми именами по имени файла, в которой функция определена.

В качестве ключей можно использовать неполные строки, если сокращение может быть разрешено однозначно. Метод воспринимает следующие ключи (если не указано иного, сортировка производится по возрастанию или в алфавитном порядке):

calls

число вызовов (по убыванию);

cumulative

суммарное время, затраченное на выполнение функции, исключая время, затраченное на вызовы из нее других функций (по убыванию);

file

имя файла;

module

имя модуля;

Для сортировки собранных статистических данных и вывода отчета функция run() использует класс pstats.Stats.



pcalls

число примитивных вызовов (по убыванию);

line

номер строки;

name

имя функции;

имя функции, имя файла, номер строки (вызовы sort stats(nfl) и sort stats(name, file, line) эквивалентны);

stdname

стандартное имя, содержащее имя файла, номер строки и имя функции; time

суммарное время, затраченное на выполнение функции, исключая время, затраченное на вызовы из нее других функций (по убыванию).

reverse order()

Меняет порядок следования данный на обратный.

print stats ([restriction ...])

Выводит отчет (аналогично функции profile.run()). Порядок следования данных определяется последним вызовом метода sort stats() . Аргументы могут быть использованы для ограничения вывода информации. Каждый аргумент может быть целым числом (максимальное количество строк с данными), вещественное число от 0.0 до 1.0 (доля выводимой информации) или строка с регулярным выражением (выводятся только строки, ему удовлетворяющие). Если указано несколько ограничений, они применяются последовательно.

print callers ([restriction ...])

Для каждой записи выводит имя функции, которая вызвала данную. Для удобства в скобках указывается число таких вызовов и, затем, совокупное время. В остальном поведение этого метода идентично поведению метода print stats() .

print callees ([restriction ...])

Для каждой записи выводит имя функций, которые данная функция вызывает. В остальном поведение этого метода идентично поведению метода print stats() .

Все описанные здесь методы возвращают ссылку на экземпляр, поэтому несколько операций могут быть записаны одной инструкцией.



0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 [ 110 ] 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145