the Python Profilers¶

The Stats Class¶

Analysis of the profiler data is done using the Stats class.

classpstats.Stats(*nomes de ficheiros ou perfil, stream=sys.stdout)¶

This class constructor creates an instance of a “statistics object” from afilename (or list of filenames) or from a Profile instance. A produção será impressa no fluxo especificado pelo stream.

o ficheiro seleccionado pelo construtor acima deve ter sido criado pela versão correspondente de profile ou cProfile. Para ser específico, não há Compatibilidade de arquivos garantida com versões futuras deste profilador, e não há compatibilidade com arquivos produzidos por outros profiladores, ou o mesmo profiler executado em um sistema operacional diferente. Se forem fornecidos vários ficheiros, serão reunidas todas as estatísticas relativas a funções idênticas, de modo a que uma visão global de vários processos possa ser considerada num único relatório. Se for necessário combinar ficheiros adicionais com dados em Stats object, pode ser utilizado o método add().

em vez de ler os dados do perfil de um ficheiro, um objecto cProfile.Profileou profile.Profile pode ser usado como fonte de dados do perfil.

Stats objectos têm as seguintes métodos:

strip_dirs()¶

Este método para o Stats classe remove todos os principais pathinformation de nomes de arquivo. É muito útil na redução do tamanho da impressão para caber dentro (perto de) 80 colunas. Este método modifica o objeto, e a informação despojada é perdida. Depois de realizar a operação astrip, o objeto é considerado ter suas entradas em uma ordem” aleatória”, como foi logo após a inicialização e carregamento do objeto.Se strip_dirs() faz com que os dois nomes de função para beindistinguishable (eles estão na mesma linha do mesmo nome, andhave o mesmo nome de função), então as estatísticas para esses dois entriesare acumuladas em uma única entrada.

add(*nomes de ficheiros)¶

This method of the Stats class accumulates additional profilinginformation into the current profiling object. Seus argumentos devem se referir a nomes de arquivos criados pela versão correspondente de profile.run()ou cProfile.run(). As estatísticas para funções com nomes idênticos (re: file, line,name) são automaticamente acumuladas em functionstatísticas únicas.

dump_stats(nome do ficheiro)¶

Save the data loaded into the Stats object to a file namedfilename. O arquivo é criado se ele não existe, e está sobre-escrito se ele já existe. Isto é equivalente ao método do mesmo nome das classes profile.Profile e cProfile.Profile.

sort_stats(*keys)¶

This method modifies the Stats object by sorting it according it according to supplied criteria. O argumento pode ser uma seqüência de caracteres ou um SortKeyenum identificar a base de uma espécie (exemplo: 'time''name'SortKey.TIME ou SortKey.NAME). O argumento SortKey enums tem avançado sobre o argumento string em que ele é mais robusto e propenso ao erro.

Quando Mais de uma chave é fornecida, então chaves adicionais são usados critérios de assistência quando há igualdade em todas as chaves selecionadas antes delas. Por exemplo, sort_stats(SortKey.NAME, SortKey.FILE) irá sortear todas as entradas de acordo com o seu nome de função, e resolver todos os laços(nomes de funções idênticos) ordenando pelo nome do ficheiro.

para o argumento string, abreviaturas podem ser usadas para qualquer nome chave, aslong como a abreviatura é inequívoca.

The following are the valid string and SortKey:

Valid String Arg

Valid enum Arg

Meaning

'calls'

SortKey.CALLS

call count

'cumulative'

SortKey.CUMULATIVE

cumulative time

'cumtime'

N/A

cumulative time

'file'

N/A

file name

'filename'

SortKey.FILENAME

file name

'module'

N/A

file name

'ncalls'

N/A

call count

'pcalls'

SortKey.PCALLS

primitive call count

'line'

SortKey.LINE

line number

'name'

SortKey.NAME

function name

'nfl'

SortKey.NFL

name/file/line

'stdname'

SortKey.STDNAME

standard name

'time'

SortKey.TEMPO

tempo interno

'tottime'

N/d

tempo interno

Note que todos os tipos de estatísticas são em ordem decrescente (colocando mosttime consumir itens de primeira), onde, como nome de arquivo e número de linha searchesare em ordem crescente (em ordem alfabética). A sutil distinção entreSortKey.NFL e SortKey.STDNAME é que o nome padrão é asort do nome como o impresso, o que significa que o incorporado linha numbersget comparados em uma maneira estranha. Por exemplo, linhas 3, 20, e 40 seria (ifthe nomes de arquivo foram mesmo) aparece na seqüência de caracteres de ordem 20, 3 e 40.Em contraste, SortKey.NFL faz uma numérico comparar os números de linha.Na verdade, sort_stats(SortKey.NFL) é o mesmo quesort_stats(SortKey.NAME, SortKey.FILENAME, SortKey.LINE).

Para compatibilidade com versões anteriores razões, os argumentos numéricos -101 e 2 são permitidos. Eles são interpretados como 'stdname''calls''time' e 'cumulative', respectivamente. Se este formato oldstyle (numérico) for usado, apenas uma chave de ordenação (a chave numérica) será usada, e os argumentos adicionais serão silenciosamente ignorados.

New in version 3.7: Added the SortKey enum.

reverse_order()¶

This method for theStats class reverses the ordering of thebasic list within the object. Note que por padrão a ordem ascendente de vsdescending é corretamente selecionada com base na chave sort da escolha.

print_stats(*restrictions)¶

This method for the Statsclass prints out a report as described in the profile.run() definition.

A ordem de impressão com base no últimosort_stats() operação feita sobre o objeto (assunto tocaveats em add() estrip_dirs()).

os argumentos fornecidos (se existirem) podem ser utilizados para limitar a lista a estas entradas significativas. Inicialmente, a lista é tomada para ser o conjunto completo de funções perfiladas. Cada restrição é um inteiro (para selecionar um número de linhas), ou uma fração decimal entre 0.0 e 1.0 inclusivo (para seleccionar uma percentagem de linhas), ou uma cadeia que irá interpretar como expressão aregular (para ajustar o padrão com o nome padrão que é impresso).Se forem previstas várias restrições, estas são aplicadas sequencialmente.Por exemplo:

print_stats(.1, 'foo:')

primeiro limite a impressão primeira de 10% da lista e, em seguida, apenas printfunctions que faziam parte do nome de ficheiro .*foo:. Em contrapartida, a Comissão:

print_stats('foo:', .1)

limitaria a lista a todas as funções com nomes de ficheiros .*foo:,e depois continuaria a imprimir apenas os primeiros 10%.

print_callers(*restrictions)¶

This method for the Stats class prints a list of all functions that called each function in the profiled database. A ordenação isidêntica à fornecida por print_stats(), e a definição do argumento restritivo também é idêntica. Cada ouvinte é informado na sua própria linha. O formato difere ligeiramente dependendo do perfil que produziu as estatísticas:

  • Com profile, um número é mostrado entre parênteses após cada callerto mostrar quantas vezes esta chamada específica foi feita. Por conveniência, um segundo número não-parentesizado repete o tempo cumulativo gasto na função à direita.

  • Com cProfile, cada chamador é precedido por três números: o número de vezes que esta chamada específica foi feita, e o total e os tempos de acumulação gastos na função atual, enquanto foi invocado por este chamador específico.

print_callees(*restrictions)¶

This method for the Stats class prints a list of all function that were called by the indicated function. Aparte desta inversão de direcionamento de chamadas (re: called vs was called by), Os argumentos andordarding são idênticos ao método print_callers().

get_stats_profile()¶

Este método retorna uma instância de StatsProfile, que contém um mappingof nomes de função para instâncias de FunctionProfile. Cada FunctionProfileinstance contém informações relacionadas com a função do perfil, tais como howlong a função levou para executar, quantas vezes ele foi chamado, etc…

de Novo na versão 3.9: Adicionado o seguinte dataclasses: StatsProfile, FunctionProfile.Acrescentou a seguinte função: get_stats_profile.

Deixe uma resposta

O seu endereço de email não será publicado.