Verfahren zur Herstellung programmatisch CPU-Zeit für Thread bekommen, in C, das funktioniert sowohl auf Opensolaris und Linux

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

  •  25-09-2019
  •  | 
  •  

Frage

Ich habe einen kleinen Dämon, dass ich in C ich schreibe und ich brauche einen Weg, um die aktuelle CPU-Zeit auf einem Thread zu bekommen. Linux liefert offenbar eine Reihe von Möglichkeiten, um dies zu tun zu gehen, clock_gettime (CLOCK_THREAD_CPUTIME_ID, ...), pthread_getcpuclockid (), getrusage (RUSAGE_THREAD, ...), aber keiner von ihnen scheint unter Opensolaris 2009.06 unterstützt werden.

Gibt es eine Cross-Plattform-freundliche Art und Weise die aktuelle CPU-Zeit für einen Thread zu bekommen? Wenn nicht, gibt es eine Möglichkeit, es in Openüberhaupt zu tun? An diesem Punkt bin ich sogar bereit, in einer Reihe von hässlich Compiler-Direktiven setzen diese Arbeit zu machen.

War es hilfreich?

Lösung

Nach "Thread Priorität auf dem Solaris Platform ", Solaris 9 und über Standard zu einer eins-zu-eins-Entsprechung zwischen Threads und LWPs ( Leichte Prozesse ). Daher wird gemäß getrusage der manpage Sie sollten Anruf getrusage(RUSAGE_LWP, ...) der Lage sein.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top