Pergunta

Eu sou portando uma biblioteca do Windows para * NIX (atualmente OSX), alguém agora que função eu posso usar em vez de QueryPerformanceCounter e QueryPerformanceFrequency da Microsoft?

Foi útil?

Solução

http://www.tin.org/bin/man. cgi? section = 3 & topic = clock_gettime (E as outras funções indicado lá) - é Posix! Vai cair de volta para contadores pior se HPET não é existente. (Não deve ser um problema embora)

http://en.wikipedia.org/wiki/High_Precision_Event_Timer

A resolução deve ser de cerca de + 10Mhz.

Outras dicas

No OSX mach_absolute_time e mach_timebase_info são os melhores equivalentes para Win32 QueryPerformance * funções.

http://developer.apple.com/library/ mac / # qa / qa1398 / _index.html

Tente de impulso ptime para portáteis de alta resolução de temporização.

Atualizar (solicitado, 2 anos depois, pelo comentário de Mark abaixo):

Estes dias eu usaria um std::chrono::high_resolution_clock; exemplo .

Ele perguntou sobre OS X. Use essas APIs de CoreAudio:

AudioConvertHostTimeToNanos(AudioGetCurrentHostTime())

De volta ao dia em que você tinha ou uclock ou você mergulhou em assembler para ler o RDTSC .

G.

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