Pergunta

Então eu sei que o relógio () mede os ciclos do relógio e, portanto, não é muito bom para medir o tempo, e sei que existem funções como omp_get_wtime () para obter o tempo da parede, mas é frustrante para mim que o tempo da parede varia assim Muito, e estava se perguntando se havia uma maneira de medir ciclos de relógio distintos (apenas um ciclo, mesmo que mais de um thread executado nele). Tem que ser algo relativamente simples/nativo. Obrigado

Foi útil?

Solução

Veja a resposta do freememory para essa questão para RDTSC se você estiver usando x86, que eu testei e parece funcionar bem no meu sistema (Mac), mas veja minha resposta para essa questão. Veja também as críticas do RDTSC aqui.

Normalmente, não vale a pena para descer a um nível muito baixo de detalhes, outros pedaços de trabalho que o computador precisa fazer usarão os ciclos de relógio, para que ele varie dependendo da carga. eu acho omp_get_wtime() O suficiente, embora eu precise colocar meu código em um loop extra para garantir que seja preciso um segundo para garantir resultados consistentes da execução para a execução.

Outras dicas

Tem certeza de que tomar medições de tempo não funcionará para você? Lembre -se de que você só pode medir para tantos milissegundos, dependendo do sistema operacional.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top