Запишите время вычисления функций с примерами кода

Чтобы зарегистрировать время вычисления каждой функции в вашем коде, вы можете использовать различные методы в зависимости от используемого языка программирования. Вот несколько примеров на разных языках:

  1. Python:

    import time
    def log_compute_time(func):
       def wrapper(*args, kwargs):
           start_time = time.time()
           result = func(*args, kwargs)
           end_time = time.time()
           compute_time = end_time - start_time
           print(f"{func.__name__} compute time: {compute_time} seconds")
           return result
       return wrapper
    @log_compute_time
    def ready_data_for_task():
       # Your code here
    @log_compute_time
    def retrieve_data_from_tasks():
       # Your code here
  2. JavaScript:

    function logComputeTime(func) {
       return function() {
           console.time(func.name + ' compute time');
           var result = func.apply(this, arguments);
           console.timeEnd(func.name + ' compute time');
           return result;
       }
    }
    function readyDataForTask() {
       // Your code here
    }
    function retrieveDataFromTasks() {
       // Your code here
    }
    readyDataForTask = logComputeTime(readyDataForTask);
    retrieveDataFromTasks = logComputeTime(retrieveDataFromTasks);
  3. Java:

    import java.util.function.Supplier;
    public class ComputeTimeLogger {
       public static <T> T logComputeTime(Supplier<T> function) {
           long startTime = System.nanoTime();
           T result = function.get();
           long endTime = System.nanoTime();
           double computeTime = (endTime - startTime) / 1_000_000_000.0;
           System.out.println(function.getClass().getName() + " compute time: " + computeTime + " seconds");
           return result;
       }
    }
    public class Main {
       public static void main(String[] args) {
           ComputeTimeLogger.logComputeTime(Main::readyDataForTask);
           ComputeTimeLogger.logComputeTime(Main::retrieveDataFromTasks);
       }
       private static void readyDataForTask() {
           // Your code here
       }
       private static void retrieveDataFromTasks() {
           // Your code here
       }
    }

Эти примеры демонстрируют, как обернуть ваши функции средствами журналирования, измеряющими время вычислений. Код выведет время вычисления в секундах для каждой функции при ее выполнении.