امروز نیز د بخش الگوریتم دیجی نکست قصد دارم دمورد یه قطعه کد ساده و در عین حال بسیار کاربردی صحبت کنیم ،…
برنامه نویسان مختلف برای زبان های مختلف هر روز کد میزنند و قطعا زمان اجرای آن در بسیاری از موارد برای این برنامه نویسان مهم است . در این پست قصد ندارم وارد بهینه سازی کد ها و یا ساختمان داده ها بشوم و فقط میخوام در این مورد بحث کنیم که “چگونه میتوانیم زمان اجرای برنامه خود را بفهمیم”؟
جواب خیلی ساده و جالب میباشد …
خیلی سریع بریم سراغ کد :
نکته : حتما در همان ابتدا کتابخانه ctime را تعریف کنید .
#include <ctime> #include <iostream> using namespace std ; //by PooyaPhoenix from DigiNext.ir int main() { int a=0; int start_s=clock(); for (int j=0 ; j<100000 ; j++){ for (int i=0 ; i<10000 ; i++){ a=a+5; a*=a; a/50; a=1; a+=2; } } int stop_s=clock(); cout << "time: " << (stop_s-start_s)/double(CLOCKS_PER_SEC) << endl; }
نکته:
(stop_s-start_s)/double(CLOCKS_PER_SEC)
این دستور موجود در کد باعث میشود که زمان خروجی ما بر حسب ثانیه تولید شود .
من در کد بالا ااز دو حلقه تو در تو استفاده کردم و درون حلقه دوم چند کار محاسباتی انجام داده ایم تا به حد کافی پردازشگر درگیر شود و در نهایت بعد از اجرای برنامه میفهمیم که زمان اجرا کد بالا ۰٫۳ ثانیه میباشد . حالا نکته جالب قضیه اینست که اگر به در حلقه ائل به جای عدد ۱۰۰۰۰ ، عدد ۱۰۰۰۰۰ را قرار دهیم ، مشاهده میکنیم که زمان اجرا هم ۱۰ برابر میشود یعنی زمان اجرا کد ۳ ثانیه میشود . فکر کنم این موضوع دقیق بودن و زیبایی این مبحث را به همه ی ما ثابت میکند .
اگر به دنبال مطلب بیشتر از تئوریات زمان اجرا هستید به این لینک ویکی پدیا سری بزنید
منتظر سوال و تجربیات شما هم در بخش دیدگاه ها هستم … موفق باشید
۲ دولایک کن