2016-04-14 21 views
3

CLOCK_THREAD_CPUTIME_ID ve clock_gettime ile farklı iş parçacıklarının zaman tüketimini ölçmek için kullanılır.C++ dünyasında herhangi bir konuya özel saat var mı?

Ama clock_gettime, POSIX dünyasında bir standarttır, bu nedenle platform geçişi söz konusu olduğunda Windows gibi başka bir platformda çalışmayacaktır.

C++ STD'yi kontrol ettim, şu ana kadar steady_clock, system_clcok, high_resolution_clock bulundu, bunların hiçbiri belirli bir parçacığı satamaz.

Herhangi bir şeyi özledim mi? Eğer evetse, mermi nedir? Ya da değilse, herhangi bir tavsiye?

+0

Daha detaylı bir açıklama yapabilirseniz daha iyi. cevap olarak @JoachimPileborg – hxpax

+0

@JoachimPileborg Yorumlar bölümünde değil, uygun bir yerde yayınlayabilirsiniz. Daha sonra başka bir cevap gibi akran olabilir, bu SO 'modelinin daha çok "forum" benzeri web sitelerinin yaratılmasının tüm amacıydı. –

cevap

1

GetThreadTimes işlevini kullanabileceğiniz pencerelerin altında, iş parçacığı zamanlayıcınızın uygulanmasını soyutlamanız gerekecektir. Linux altında (veya POSIX olmayan) CLOCK_THREAD_CPUTIME_ID kullanın. Ama sanırım windows altında mingw ile derlerseniz, CLOCK_THREAD_CPUTIME_ID mevcut olacaktır. boost thread_clock

2

C++ standardında CPU zamanı ölçmek için sadece "saat" bakmak taşınabilirlik için de

, hala taşınabilir değil bu yüzden Windows CPU süresini ölçmez std::clock, ve Her neyse işlem başına ve iş parçacığı başına değil.

İş parçacığı CPU zamanını ölçmek istiyorsanız, portatif olmayan platforma özgü işlevlere başvurmanız gerekir.

İlgili konular