محاسبه زمان انجام یک پروسه یا روند بر حسب میلی ثانیه milliseconds و ثانیه seconds
حتما برای شما هم این مورد پیش آمده که بخواهید زمان انجام یک پروسه و روند را محاسبه کنید و آن را با سایر زمان ها بسنجید.
برای مثال فرض کنید قصد دارید زمان محاسبه تولید کلید خصوصی در روش کلید عمومی RSA را با زمان تولید کلید در روش Elliptic Curve Cryptography یا به اختصار ECC مقایسه کنید. در این جا از چه روشی استفاده می کنید؟
دو راه عمده وجود دارد:
۱) با استفاده از برنامه های جانبی. مثلا در ویژوال استادیو می توان از گزینه Start Performance Analysis استفاده نمود.
۲) که در ادامه توضیح خواهم داد:
راه اول ممکن است نیاز به کسب دانش داشته باشد و شما حوصله آن را نداشته باشید؛ اما در راه دوم بدون نیاز به هیچ پیش زمینه ای می توانید زمان مربوط به هر پروسه را به طور جدا محاسبه نمایید. در این روش ساده، زمان قبل و زمان بعد از یک پروسه را اندازه گیری می کنیم و آن را از هم کم می کنیم. به همین سادگی!
برای اینکار استفاده از دو تابع به شما پیشنهاد می شود که با توجه به نیازتان می توانید از آن ها استفاده نمایید. تابع اول خروجی را به میلی ثانیه و تابع دوم خروجی را برحسب ثانیه محاسبه می کند. معمولا برای دقت در کار همیشه از تابع اول استفاده می کنند.
شبه کد زیر بیان گر این موضوع است:
#include <time.h> #include <iostream> using namespace std; int main(){ clock_t timer1,timer2; timer1=clock(); //majmooe dastoorat timer2=clock(); cout<<timer2-timer1; //mohasebeye zaman be miliseconds time_t timer3,timer4; time(&timer3); //majmooe dastoorat time(&timer4); cout<<timer4-timer3; //mohasebeye zaman be seconds return 0;}
مشخصا در قسمت majmooe dastoorat// کد دلخواه خود را که قصد محاسبه زمان آن را دارید، می بایست درج کنید.
منبع: مرجع کامل فارسی سی پلاس پلاس به آدرس Cplusplus.ir
نویسنده: تمدن
لازم به ذکر است که دامنه cplusplus.ir توسط من تهیه شده و در حال حاضر محتوای سایت را روی وبلاگ بارگذاری کرده ام ;)
برای مشاهدۀ فهرست مطالب به آدرس tamadon.net/cpp مراجعه فرمایید.
دیدگاه خود را ثبت کنید
تمایل دارید در گفتگو شرکت کنید؟نظری بدهید!