سلیب که در خلوت خود در حال تفکری عمیق درباره اردر‌های مختلف بود، به این فکر فرو رفت که متدهایی که پیاده‌سازی کرده چقدر طول می‌کشند و چقدر بهینه کد می‌زند. برای همین سراغ پیاده‌سازی متدی برای سنجش زمان موردنیاز برای اجرای هر متد خود رفت. در ادامه به توضیح این متد می‌پردازیم.

جزئیات پروژه

پروژه‌ی اولیه را از این لینک دانلود کنید.

ساختار فایل‌های پروژه به‌صورت زیر است:

execution-time
└── ExecutionTimeCalculator.java
Plain text

شما باید متد 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));
    }
}
Java
ExecutionTimeCalculator.java

این متد باید Runnableای که به آن ورودی داده می‌شود را اجرا کند و زمان مورد نیاز برای اجرای آن را با واحد ثانیه در متغیری از جنس BigDecimal دقیقاً با ۵ رقم پس از اعشار برگرداند. برای کاهش ارقام اعشار باید عدد را از پنجمین رقم در ممیز گرد کنید (برای این کار، می‌توانید از RoundingMode.HALF_UP استفاده کنید).

نکات

  • توجه داشته باشید که خروجی شما باید دقیقاً شامل ۵ رقم پس از اعشار باشد.
  • عدد محاسبه‌شده را باید گرد کنید.
  • زمان محاسبه‌شده باید با واحد ثانیه باشد.
  • متد run در شیء Runnable متد را اجرا می‌کند.

آن‌چه باید آپلود کنید

پس از پیاده‌سازی موارد خواسته‌شده، فایل ExecutionTimeCalculator.java را آپلود کنید.


ارسال پاسخ برای این سؤال
فایلی انتخاب نشده است.