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.Profile
ou 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 |
---|---|---|
|
SortKey.CALLS |
call count |
|
SortKey.CUMULATIVE |
cumulative time |
|
N/A |
cumulative time |
|
N/A |
file name |
|
SortKey.FILENAME |
file name |
|
N/A |
file name |
|
N/A |
call count |
|
SortKey.PCALLS |
primitive call count |
|
SortKey.LINE |
line number |
|
SortKey.NAME |
function name |
|
SortKey.NFL |
name/file/line |
|
SortKey.STDNAME |
standard name |
|
SortKey.TEMPO |
tempo interno |
|
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 -1
0
1
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 Stats
class 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.