Nisso Linux Dica artigo, mostraremos como usar o relógio() função, um dos recursos disponíveis no idioma c, para medir os tempos de execução de um processo ou tópico específico.
Embora essas frações de tempo pareçam insignificantes, há casos críticos em que a capacidade de medir e calcular essas pequenas frações de tempo são fatores críticos na precisão do sistema ou em si próprio. Vamos dar uma descrição teórica de como relógio() funciona, explique sua operação e as unidades de medição que ele usa para esse fim.
Em seguida, usando exemplos práticos que incluem fragmentos e imagens de código, veremos como você pode implementar essa função de uma maneira clara e detalhada de medir os tempos críticos em processos em tempo real em diferentes sistemas.
Relógio () Sintaxe da função:
Clock_t Clock (vazio)
Relógio () Descrição da função na linguagem C
A função relógio () está vazia quando chamado. Ele não contém argumentos de entrada e retorna o número de ticks do relógio em "Clock_t" no momento da chamada.
A contagem de pulsos começa em zero quando o aplicativo é iniciado e continua até que o usuário ou o sistema saiu, redefinindo para zero por excesso em aproximadamente a cada 72 minutos. A função relógio () não modifica ou tem controle sobre esse contador; só recebe seu valor quando chamado.
Para medir o tempo total de execução do programa, precisamos ligar para o relógio () apenas uma vez no final do programa. Para medir o tempo decorrido de um ponto do programa para outro, precisamos chamar a função do relógio () e calcular os dois dados obtidos.
O cálculo para determinar os carrapatos decorridos entre duas chamadas do relógio() A função é feita subtraindo o resultado da primeira chamada do resultado da segunda chamada. Vejamos um exemplo para determinar a quantidade de tempo decorrido de um ponto do programa para outro.
O relógio() A função é definida em “Time.H ”funções de cabeçalho. Devemos incluí -lo em nosso “.C "ou".arquivo de código H ”, conforme mostrado na imagem a seguir, para usá -lo.
#incluir
Como obter o relógio decorrido ticks de um ponto do programa para outro com a função do relógio ()
Neste exemplo, veremos como obter o número de ticks decorridos de um ponto no programa para outro. Esses dois pontos correspondem a uma das duas chamadas para o relógio() função, respectivamente. Para entender isso, vamos ver o seguinte código:
#incluir
#incluir
void main ()
clock_t ticks_ini, ticks_end;
ticks duplos;
ticks_ini = relógio (); // medir start
printf ("ticks init medir %ld \ n", ticks_ini);
para (int a = 0; a<=456450; a++);
ticks_end = relógio (); // meça parada
ticks = ticks_end - ticks_ini;
printf ("ticks final medem %ld \ n", ticks_end);
printf ("ticks decorridos entre a medida %f \ n", ticks);
retornar;
Primeiro, criamos as duas variáveis, ticks_ini e ticks_end, em que armazenamos o resultado do relógio () em suas duas chamadas. Nós o calculamos para obter o número de carrapatos decorridos e o número inteiro ticks, em que armazenamos o resultado final do total de carrapatos decorridos.
Então, chamamos o relógio() função em nosso "principal" e recupere os ticks de relógio definidos anteriormente no ticks_ini variável que se passou desde o início do programa até a primeira chamada para esta função. Usamos a função printf () para exibir este valor.
Após esse atraso, que criamos com para, nós chamamos o relógio() função pela segunda vez para obter o número de carrapatos até este ponto. Emitimos o resultado para a tela com a função printf (). Em seguida, obtemos o resultado do número exato de carrapatos que se passaram entre a primeira e a segunda chamadas para relógio() subtraindo ticks_ini de ticks_end e armazenar o resultado nos carrapatos variáveis, que produzimos para o console com printf ().
Dessa forma, temos os carrapatos que se passaram de um ponto para outro no código.
Como converter o número de carrapatos obtidos em segundos com a função de relógio ()
Depois que temos o número de carrapatos que se passaram desde que o programa começou ou de um ponto para outro, podemos converter esse tempo expresso em ticks em segundos, dividindo o resultado do exemplo anterior pela constante predefinida no tempo.h Relógios _per_ seg, Conforme mostrado no snippet seguinte:
ticks = (ticks_end - ticks_ini)/(duplo) clocks_per_sec;
printf ("ticks decorridos em segundos entre a medida %f \ n", ticks);
Conclusão
Nisso Linux Dica artigo, mostramos como implementar o relógio() função para fazer as medidas de tempo nos carrapatos do relógio do sistema. Também explicamos como você pode medir todos ou parte desses momentos no aplicativo em execução. Mostramos como converter os resultados em segundos. Esperamos que você tenha achado este artigo útil. Você pode encontrar mais dicas sobre o idioma C em nossos artigos que você pode encontrar usando o mecanismo de pesquisa do site.