سلیب که در خلوت خود در حال تفکری عمیق درباره اردرهای مختلف بود، به این فکر فرو رفت که متدهایی که پیادهسازی کرده چقدر طول میکشند و چقدر بهینه کد میزند. برای همین سراغ پیادهسازی متدی برای سنجش زمان موردنیاز برای اجرای هر متد خود رفت. در ادامه به توضیح این متد میپردازیم.
جزئیات پروژه
پروژهی اولیه را از این لینک دانلود کنید.
ساختار فایلهای پروژه بهصورت زیر است:
execution-time
└── ExecutionTimeCalculator.java
شما باید متد measureExecutionTime موجود در کلاس ExecutionTime را مطابق با خواست سؤال پیادهسازی کنید. امضای این متد بهصورت زیر است:
import java.math.BigDecimal;
public class ExecutionTimeCalculator {
public static long functionToCall() {
long returnValue = 0;
for (long i = 1; i < 1000L * 1000 * 1000 * 10; i++) {
returnValue += i;
}
return returnValue;
}
public static BigDecimal measureExecutionTime(Runnable function) {
// TODO: Implement
return null;
}
public static void main(String[] args) {
System.out.println(measureExecutionTime(ExecutionTimeCalculator::functionToCall));
}
}
این متد باید Runnableای که به آن ورودی داده میشود را اجرا کند و زمان مورد نیاز برای اجرای آن را با واحد ثانیه در متغیری از جنس BigDecimal دقیقاً با ۵ رقم پس از اعشار برگرداند. برای کاهش ارقام اعشار باید عدد را از پنجمین رقم در ممیز گرد کنید (برای این کار، میتوانید از RoundingMode.HALF_UP استفاده کنید).
نکات
- توجه داشته باشید که خروجی شما باید دقیقاً شامل ۵ رقم پس از اعشار باشد.
- عدد محاسبهشده را باید گرد کنید.
- زمان محاسبهشده باید با واحد ثانیه باشد.
- متد
runدر شیءRunnableمتد را اجرا میکند.
آنچه باید آپلود کنید
پس از پیادهسازی موارد خواستهشده، فایل ExecutionTimeCalculator.java را آپلود کنید.
ارسال پاسخ برای این سؤال