Método de obter programaticamente o tempo da CPU para threads, em C, que funciona em OpenSolaris e Linux

StackOverflow https://stackoverflow.com/questions/2610484

  •  25-09-2019
  •  | 
  •  

Pergunta

Eu tenho um pequeno daemon que estou escrevendo em C e preciso de uma maneira de obter o tempo atual da CPU em um tópico. Aparentemente, o Linux fornece várias maneiras de fazer isso, clock_gettime (clock_thread_cputime_id, ...), pthread_getcpuclockid (), getRusage (rusage_thread, ...), mas nenhum deles parece ser apoiado sob o OpenSolaris 2009.06.

Existe uma maneira amigável de plataforma cruzada de obter o tempo atual da CPU para um tópico? Caso contrário, existe alguma maneira de fazê -lo no OpenSolaris? Neste ponto, estou disposto a colocar um monte de diretivas de compilador feio para fazer isso funcionar.

Foi útil?

Solução

De acordo com "Prioridade do tópico na plataforma Solaris", Solaris 9 e acima do padrão para uma correspondência individual entre threads e LWPs (Processos leves). Portanto, de acordo com Manpage de Getrusage, você deve poder ligar getrusage(RUSAGE_LWP, ...).

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