الگوریتمستان - نکته‌ای در محاسبه‌ زمان اجرای کد

تفاوت توابع clock و time در زبان برنامه‌نویسی ++C

✤    ۷ آبان ۱۳۹۵

برای محاسبه زمان اجرای کد در ++C می‌توان از دو تابع clock یا time استفاده کرد. تابع clock، تعداد کلاک‌های در اختیار برنامه از CPU تا آن لحظه را برمی‌گرداند که با تقسیم بر CLOCKS_PER_SEC به ثانیه تبدیل می‌شود. تابع time، زمان سیستم را بر حسب ثانیه برمی‌گرداند. پس می‌توان از اختلاف دو clock و تقسیم آن بر CLOCKS_PER_SEC یا اختلاف دو time مدت زمان اجرای قطعه کد را به دست آورد.

استفاده از این دو تابع دو تا تفاوت دارد. اول اینکه با clock امکان محاسبه مقادیر کمتر از ثانیه هم وجود دارد و مثلا عدد 0.5 یعنی 500 میلی‌ثانیه. در حالی که با time امکان محاسبه کمتر از ثانیه وجود نداره. دوم، clock تعداد کلاک‌های در اختیار برنامه از CPU رو نشان می‌دهد. بنابراین برای برنامه‌ها با پردازش موازی، اختلاف نقطه شروع و پایان با این تابع، لزوما به معنی مدت زمان اجرا نیست و متناسب با تعداد پردازش‌های موازی ممکن است چند برابر بیشتر باشد. چرا که چند هسته همزمان کلاک در اختیار برنامه قرار داده‌اند.


نسخه‌ی اولیه‌ی این نوشته از وبلاگ تجربه‌های پراکنده یک مسعود به الگوریتمستان منتقل شده است.

تا کنون ۳ امتیاز ثبت شده
نوشته لایک نداشت؟
 
به اشتراک گذاری نوشته

amasoudfam.ir/l/sj9i1

اشتراک‌گذاری در LinkedIn     اشتراک‌گذاری در Twitter     ارسال با Telegram

نام: *  
پست الکترونیک (محرمانه):
پیام: *