با سلام
من برنامه ای در C++ نوشتم و زمان اجرای آن را با کدی که در C++ نوشتم اندازه گیری کردم ولی مشکلی که هست این است که هر بار زمان اجرای برنامه برای یک ورودی مشخص متفاوت از دفعه قبل است. خواهشمندم راهنمایی کنید.
با سلام
من برنامه ای در C++ نوشتم و زمان اجرای آن را با کدی که در C++ نوشتم اندازه گیری کردم ولی مشکلی که هست این است که هر بار زمان اجرای برنامه برای یک ورودی مشخص متفاوت از دفعه قبل است. خواهشمندم راهنمایی کنید.
clock_t begin,end;
begin=clock();
برنامه ای که می خوام زمان آن را اندازه گیری کنم
end=clock();
d=((end-begin)*1000)/CLOCKS_PER_SEC;
cout<<d;
به برنامه ای که می خوام زمان آن را اندازه گیری کنم هر بار مثلا ورودی 8 می دهم ولی هر بار زمان اجرا متفاوت از زمان قبلی است
این موضوع کاملا طبیعی هست. چون CPU کامپیوتر شما به طور همزمان در حال اجرا کردن تعداد زیادی برنامه (سیستمی و غیر سیستمی) هست. زمانی که شما با این روش اندازهگیری میکنید زمانی هست که برنامه شروع میشه تا زمانی که تموم میشه. این وسط به کررات سیپییو به برنامههای دیگهای که روی کامپیوتر شما درحال اجراست داده میشه تا اونها هم اجرا بشوند. این زمانها اجرا هم در زمانی که شما اندازه گیری میکنید به حساب میاد. شما باید تعداد سیکلهای cpu که صرف برنامهی شما میشه رو اندازه گیری کنید و نه تعداد تمام سیکلهایی که cpu از زمان شروع برنامهی شما تا زمان پایانش صرف میکنه. برای این کار باید از یک پروفایلر استفاده کنید نه از دستور clock().
کسی جواب ما را نداد چطور میشه در C++ زمان اجرای برنامه را بطور خالص و بدون دخالت پردازشهای دیگر اندازه گیری کرد؟