يمثل system_clock ساعة الحائط في الوقت الفعلي على مستوى النظام. يتأثر بتعديلات وقت النظام.
تمثل Steady_clock ساعة متزايدة بشكل رتيب ولا تتأثر بالتغييرات التي تطرأ على وقت النظام.
High_resolution_clock هي الساعة ذات أقصر فترة زمنية متاحة على النظام.
مثال على نظام التشغيل مفتوح المصدر هو
بالإضافة إلى ذلك
تُستخدم مكتبة Chrono للتعامل مع التاريخ والوقت. تم تصميم هذه المكتبة للتعامل مع حقيقة أن أجهزة ضبط الوقت والساعات قد تكون مختلفة على أنظمة مختلفة وبالتالي تحسين الدقة بمرور الوقت. الشيء الفريد في chrono هو أنه يوفر مفهوم محايد الدقة من خلال فصل المدة والنقطة الزمنية (النقطة الزمنية) عن ساعات محددة. chrono هو اسم الرأس وأيضًا اسم مساحة الاسم الفرعية: جميع العناصر الموجودة في هذا الرأس (باستثناء تخصصات النوع الشائع) لم يتم تعريفها مباشرة ضمن مساحة الاسم std (مثل معظم المكتبات القياسية) ولكن تحت std::مساحة الاسم كرونو . العناصر الموجودة في هذا الرأس تتعامل مع الوقت. ويتم ذلك بشكل رئيسي من خلال ثلاثة مفاهيم:
مدة
يعبر كائن المدة عن فترة زمنية عن طريق حساب مثل دقيقة وساعتين أو عشرة مللي ثانية. على سبيل المثال، يمكن تمثيل "42 ثانية" بمدة تتكون من 42 علامة لوحدة زمنية مدتها ثانية واحدة.
CPP// C++ program to illustrate the utility // function duration::count #include #include int main () { using namespace std::chrono; // std::chrono::milliseconds is an // instantiation of std::chrono::duration:- 1 second milliseconds mil(1000); mil = mil*60; std::cout << "duration (in periods): "; std::cout << mil.count() << " milliseconds.n"; std::cout << "duration (in seconds): "; std::cout << (mil.count() * milliseconds::period::num / milliseconds::period::den); std::cout << " seconds.n"; return 0; }
الإخراج:
duration (in periods): 60000 milliseconds. duration (in seconds): 60 seconds.
ساعة
أمر سيد
تتكون الساعة من نقطة البداية (أو العصر) ومعدل القراد. على سبيل المثال، قد تحتوي الساعة على حقبة 22 فبراير 1996 وتحدد كل ثانية. تحدد لغة C++ ثلاثة أنواع من الساعات:
نقطة زمنية
يعبر كائن time_point عن نقطة زمنية تتعلق بعصر الساعة. داخليًا، يقوم الكائن بتخزين كائن من نوع المدة ويستخدم نوع الساعة كمرجع لعصره.
CPP// C++ program to illustrate time point // and system clock functions #include #include #include // Function to calculate // Fibonacci series long fibonacci(unsigned n) { if (n < 2) return n; return fibonacci(n-1) + fibonacci(n-2); } int main() { // Using time point and system_clock std::chrono::time_point<std::chrono::system_clock> start end; start = std::chrono::system_clock::now(); std::cout << "f(42) = " << fibonacci(42) << 'n'; end = std::chrono::system_clock::now(); std::chrono::duration<double> elapsed_seconds = end - start; std::time_t end_time = std::chrono::system_clock::to_time_t(end); std::cout << "finished computation at " << std::ctime(&end_time) << "elapsed time: " << elapsed_seconds.count() << "sn"; }
الإخراج:
f(42) = 267914296 finished computation at Wed Jan 4 05:13:48 2017 elapsed time: 2.14538s
من المهم ملاحظة أن الدقة والدقة في الساعات والمدد التي توفرها
jsp
إنشاء اختبار