طريقة الحصول على وقت وحدة المعالجة المركزية برمجيا لخيط ، في C ، الذي يعمل على كل من OpenSolaris و Linux
-
25-09-2019 - |
سؤال
لديّ خفي صغير أكتبه في C وأحتاج إلى طريقة للحصول على وقت وحدة المعالجة المركزية الحالية على موضوع. يبدو أن Linux يوفر عددًا من الطرق للقيام بذلك ، clock_gettime (clock_thread_cputime_id ، ...) ، pthread_getcpuclockid () ، getRusage (rusage_thread ، ...) ولكن لا يبدو أن أيا منها مدعوم تحت OpenSolaris 2009.06.
هل هناك طريقة ودية منصة للوصول إلى وقت وحدة المعالجة المركزية الحالية لخيط؟ إذا لم يكن الأمر كذلك ، فهل هناك أي طريقة للقيام بذلك في OpenSolaris على الإطلاق؟ في هذه المرحلة ، أنا حتى على استعداد لوضع مجموعة من التوجيهات المترجم القبيح لجعل هذا العمل.
المحلول
بالنسبة الى "أولوية الخيط على منصة سولاريس", ، Solaris 9 وما فوق الافتراضي لمراسلات فردية بين المواضيع و LWPs (عمليات خفيفة الوزن). لذلك ، وفقا ل GetRusage ManPage, ، يجب أن تكون قادرًا على الاتصال getrusage(RUSAGE_LWP, ...)
.