Ir para conteúdo
Fórum Script Brasil
  • 0

Tempo De Execução De Um Algoritmo


Tiago_Franck

Pergunta

Saudações,

Estou fazendo um trabalho que mede a eficiência de C e Python, usei alguns algoritmos simples para medir o tempo de execução em cada uma dessas linguagens....mas o problema é.....que função eu posso usar para isso?

Se puderem me mostrar ou indicar onde posso achar tais funções, ficaria agradecido, e também...a unidade de medição que essas funções usam(creio que segundos não seria muito exato pois o tempo de execução é muito rápido)

Bom, é só, obrigado pela atenção pessoal.

Link para o comentário
Compartilhar em outros sites

2 respostass a esta questão

Posts Recomendados

  • 0

No Linux, há o comando 'time', que faz exatamente o que você quer.

Medir o tempo de execução de um programa não é uma tarefa tão simples, pois, como os sistemas operacionais são multi-tarefa, há preempção. Então, por exemplo, um programa pode levar um minuto dar a resposta, mas, durante esse tempo, só ter passado 20 segundos na CPU.

$ time ./programa

real    0m44.555s
user    0m0.404s
sys     0m1.460s

O que ele mostra é: (real) Intervalo entre o inicio e o fim do tempo de vida do processo. (user) Tempo que o processo passou utilizando, efetivamente, a CPU. (sys) Tempo total de CPU gasto pelo sistema operacional para executar o processo. O tempo sys é maior do que o user porque o S.O. precisa fazer algumas tarefas, como tratar interrupções, e trocar contextos.

Nesse exemplo, embora o programa tenha levado quase 45s pra executar, ele passou menos do que meio segundo na CPU. Essa diferença grande acontece, principalmente, com programas que fazem muita entrada e saída.

Mais informações sobre como o 'time' funciona:

http://en.wikipedia.org/wiki/Time_%28Unix%29

http://usr-share-man.org/man1/time.html

Link para o comentário
Compartilhar em outros sites

  • 0

O que pode ser feito além do que o Isoron disse é:

- Uma análise temporal do algoritmo.

Todas as instruções de um algoritmo tem um tempo de processamento que pode ser calculado.

Por exemplo:

Uma instrução teste precisa de 5 ciclos de clock para ser resolvida, se cada ciclo é de 2 ms, então:

São necessários: 10 ms para a instrução de "teste".

Partindo disso podemos estimar o tempo que um processo ocuparia em um processador.

;)

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,5k
×
×
  • Criar Novo...