زمان اجرا


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

جزئیات پروژه🔗

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

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

execution-time
└── ExecutionTimeCalculator.java
Plain text

شما باید متد measureExecutionTime موجود در کلاس ExecutionTime را مطابق با خواست سؤال پیاده‌سازی کنید. امضای این متد به‌صورت زیر است:

extensionFromNameExecutionTimeCalculator.java
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

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

نکات🔗

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

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

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