سلیب که در خلوت خود در حال تفکری عمیق درباره اردرهای مختلف بود، به این فکر فرو رفت که متدهایی که پیادهسازی کرده چقدر طول میکشند و چقدر بهینه کد میزند. برای همین سراغ پیادهسازی متدی برای سنجش زمان موردنیاز برای اجرای هر متد خود رفت. در ادامه به توضیح این متد میپردازیم.
جزئیات پروژه
پروژهی اولیه را از این لینک دانلود کنید.
ساختار فایلهای پروژه بهصورت زیر است:
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
را آپلود کنید.
ارسال پاسخ برای این سؤال