Ir ao conteúdo
  • Comunicados

    • Gabriel Torres

      Seja um moderador do Clube do Hardware!   12-02-2016

      Prezados membros do Clube do Hardware, Está aberto o processo de seleção de novos moderadores para diversos setores ou áreas do Clube do Hardware. Os requisitos são:   Pelo menos 500 posts e um ano de cadastro; Boa frequência de participação; Ser respeitoso, cordial e educado com os demais membros; Ter bom nível de português; Ter razoável conhecimento da área em que pretende atuar; Saber trabalhar em equipe (com os moderadores, coordenadores e administradores).   Os interessados deverão enviar uma mensagem privada para o usuário @Equipe Clube do Hardware com o título "Candidato a moderador". A mensagem deverá conter respostas às perguntas abaixo:   Qual o seu nome completo? Qual sua data de nascimento? Qual sua formação/profissão? Já atuou como moderador em algo outro fórum, se sim, qual? De forma sucinta, explique o porquê de querer ser moderador do fórum e conte-nos um pouco sobre você.   OBS: Não se trata de função remunerada. Todos que fazem parte do staff são voluntários.
    • DiF

      Poste seus códigos corretamente!   21-05-2016

      Prezados membros do Fórum do Clube do Hardware, O Fórum oferece um recurso chamado CODE, onde o ícone no painel do editor é  <>     O uso deste recurso é  imprescindível para uma melhor leitura, manter a organização, diferenciar de texto comum e principalmente evitar que os compiladores e IDEs acusem erro ao colar um código copiado daqui. Portanto convido-lhes para ler as instruções de como usar este recurso CODE neste tópico:  
Entre para seguir isso  
Lord of Terror

Função Em C Ou C++

Recommended Posts

aí pessoal, preciso de uma Função de C ou C++ que retorne um valor mais preciso que o time() (ele so esta retornando o tempo em segundos), algo em torno de milisegundos já esta bom :D

e, se o próprio time() resolver isso, melhor ainda.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Depende do seu OS...

No Linux acho que tem o utime(), no Windows tem GetPerformanceCounter() , tem que ver por aí, ok...

Compartilhar este post


Link para o post
Compartilhar em outros sites
#include   <stdio.h>

#include   <dos.h>

int main(void)

{

   struct  time t;

   gettime(&t);

   printf("%2d:%02d:%02d.%02d\n",t.ti_hour, t.ti_min, t.ti_sec, t.ti_hund);

   return 0;

}

Compartilhar este post


Link para o post
Compartilhar em outros sites

aí, valeu..!

Na verdade vou utilizar essa função aí no DOS, preciso calcular quanto tempo leva o processamento de um algoritmo, valeu

aí Diogo, vou testar isso agora mesmo! valeu

Compartilhar este post


Link para o post
Compartilhar em outros sites

tipo, deu um monte de erros :o

vou colar eles aí:

C:\Windows\Desktop\Testes\teste.cpp(7) : error C2079: 't' uses undefined struct 'time'

C:\Windows\Desktop\Testes\teste.cpp(8) : error C2065: 'gettime' : undeclared identifier

C:\Windows\Desktop\Testes\teste.cpp(9) : error C2228: left of '.ti_hour' must have class/struct/union type

C:\Windows\Desktop\Testes\teste.cpp(9) : error C2228: left of '.ti_min' must have class/struct/union type

C:\Windows\Desktop\Testes\teste.cpp(9) : error C2228: left of '.ti_sec' must have class/struct/union type

C:\Windows\Desktop\Testes\teste.cpp(9) : error C2228: left of '.ti_hund' must have class/struct/union type

Error executing cl.exe.

teste.obj - 6 error(s), 0 warning(s)

eu apenas colei o codigo font e compilei, nem vi direito o q ta escrito, vou tenta da umas mexidas pra ver no q da ;)

Compartilhar este post


Link para o post
Compartilhar em outros sites
Postado Originalmente por Lord of Terror@14 mar 2004, 20:16

tipo, deu um monte de erros  :o

vou colar eles aí:

C:\Windows\Desktop\Testes\teste.cpp(7) : error C2079: 't' uses undefined struct 'time'

C:\Windows\Desktop\Testes\teste.cpp(8) : error C2065: 'gettime' : undeclared identifier

C:\Windows\Desktop\Testes\teste.cpp(9) : error C2228: left of '.ti_hour' must have class/struct/union type

C:\Windows\Desktop\Testes\teste.cpp(9) : error C2228: left of '.ti_min' must have class/struct/union type

C:\Windows\Desktop\Testes\teste.cpp(9) : error C2228: left of '.ti_sec' must have class/struct/union type

C:\Windows\Desktop\Testes\teste.cpp(9) : error C2228: left of '.ti_hund' must have class/struct/union type

Error executing cl.exe.

teste.obj - 6 error(s), 0 warning(s)

eu apenas colei o codigo font e compilei, nem vi direito o q ta escrito, vou tenta da umas mexidas pra ver no q da  ;)

qual o compilador que você tá usando?...e o SO?

Compartilhar este post


Link para o post
Compartilhar em outros sites

to usando Visual C++ Win98/SE

vou explicar melhor como vai ser aplicado a função:

Preciso calcular quanto tempo leva um processamento de alguma coisa, então fiz assim:

antes=time(0);

@@@o que seria processado viria aqui.@@@

depois=time(0);

tempo=depois-antes;

isso funciona bem, o único problema é que como o processamento é muito rápido, não chega a levar 1 segundo, então: 0 segundos - 0 segundos = 0 segundos.

Preciso de algo mais preciso que Segundos.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Use as funções QueryPerformanceFrequency e QueryPerformanceCounter.

Com a primeira você irá obter a frequência do timer (algo como 1.1MHz, o que dá menos de 1 microsegundo) e com a segunda você irá obter o número de "ticks".

Ficaria algo assim:

{

__int64 freq,start,stop;

double tempo;

QueryPerformanceFrequency((LARGE_INTEGER *)&freq);

QueryPerformanceCounter((LARGE_INTEGER *)&start);

Código a ser medido

QueryPerformanceCounter((LARGE_INTEGER *)&stop);

tempo = ((double)stop-(double)start) / (double)freq;

}

Deveria funcionar direto no você++

Edit: Ah, você disse que vai usar no DOS. O que você chama de "DOS"? Se for uma janela do prompt de comando do Windows pode usar a função que falei, mas se for bootando com um disquete do velho DOS, não vai funcionar. Neste caso procure usar a função clock().

Compartilhar este post


Link para o post
Compartilhar em outros sites

O sledgehammer valeu aí pela dica.. bom.. eu testei la mas ta falando que não ta identificando "QueryPerformanceFrequency" , "QueryPerformanceCounter"

tem alguma biblioteca q preciso usar?

Compartilhar este post


Link para o post
Compartilhar em outros sites
Postado Originalmente por Lord of Terror@15 mar 2004, 14:29

O sledgehammer valeu aí pela dica.. bom.. eu testei la mas ta falando que não ta identificando "QueryPerformanceFrequency" , "QueryPerformanceCounter"

tem alguma biblioteca q preciso usar?

Se você tem disponível a ajuda do Visual C, entrar no índice lá e procurar por QueryPerformanceCounter, vai ver que ele indica o .h que deve ser incluído. (não lembro de cor)

Compartilhar este post


Link para o post
Compartilhar em outros sites

po! funcionou sledge!! :D

so que o valor q ele me retorna é em q? milisegundos mesmo? clocks por segundo?

Compartilhar este post


Link para o post
Compartilhar em outros sites
Postado Originalmente por Lord of Terror@15 mar 2004, 18:04

po! funcionou sledge!!  :D

so que o valor q ele me retorna é em q? milisegundos mesmo? clocks por segundo?

Acho que é em milisegundos mesmo.

Pra testar faça a medição de um comando Sleep(1000). Se retornar 1000 é porque é em ms. Se retornar 1 é porque é em segundos.

Ele retorna em ticks. Quando você divide pela frequência em ticks por ms ou segundo (não sei), ele te retorna o tempo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Entre para seguir isso  





Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×