def get_elapsed_time(): """ Is the option for one of the following methods to measure time? * perf_counter, perf_counter(): pc_timestamp() * perf_counter_ns, perf_counter_ns(): pc_timestamp_ns() * process_time, process_time(): pt_timestamp() * process_time_ns, process_time_ns(): pt_timestamp_ns() * time, time.time(): time() * time_ns, time.time_ns(): time_ns() * monotonic, monotonic(): pm_monotonic() * monotonic_ns, monotonic_ns(): pm_monotonic_ns() """ if ("perf_counter" == execution_time_measurement. get_type_current_time_measurement()): # Yes. Use perf_counter() to measure performance/time. current_timestamp = pc_timestamp() elif ("perf_counter_ns" == execution_time_measurement.get_type_current_time_measurement()): # Yes. Use perf_counter_ns() to measure performance/time. current_timestamp = pc_timestamp_ns() elif ("process_time" == execution_time_measurement.get_type_current_time_measurement()): # Yes. Use process_time() to measure performance/time. current_timestamp = pt_timestamp() elif ("process_time_ns" == execution_time_measurement.get_type_current_time_measurement()): # Yes. Use process_time_ns() to measure performance/time. current_timestamp = pt_timestamp_ns() elif ("time" == execution_time_measurement.get_type_current_time_measurement()): # Yes. Use time.time() to measure performance/time. current_timestamp = time.time() elif ("time_ns" == execution_time_measurement.get_type_current_time_measurement()): # Yes. Use time.time_ns() to measure performance/time. current_timestamp = t_ns() elif ("monotonic" == execution_time_measurement.get_type_current_time_measurement()): # Yes. Use monotonic() to measure performance/time. current_timestamp = pm_monotonic() else: """ The default option is: "monotonic_ns". Use monotonic_ns() to measure performance/time. """ current_timestamp = pm_monotonic_ns() # Postcondition. Check if elapsed_time_in_ns > 0. elapsed_time_in_ns = current_timestamp - execution_time_measurement.get_initial_timestamp( ) execution_time_measurement.check_elapsed_time(elapsed_time_in_ns) return elapsed_time_in_ns
def set_initial_timestamp(type_timestamp="monotonic_ns"): execution_time_measurement.type_current_time_measurement = type_timestamp """ Is the option for one of the following methods to measure time? * perf_counter, perf_counter(): pc_timestamp() * perf_counter_ns, perf_counter_ns(): pc_timestamp_ns() * process_time, process_time(): pt_timestamp() * process_time_ns, process_time_ns(): pt_timestamp_ns() * time, time.time(): time.time() * time_ns, time.time_ns(): time.time_ns() * monotonic, monotonic(): pm_monotonic() * monotonic_ns, monotonic_ns(): pm_monotonic_ns() """ if ("perf_counter" == type_timestamp): # Yes. Use perf_counter() to measure performance/time. execution_time_measurement.initial_timestamp = pc_timestamp() elif ("perf_counter_ns" == type_timestamp): # Yes. Use perf_counter_ns() to measure performance/time. execution_time_measurement.initial_timestamp = pc_timestamp_ns() elif ("process_time" == type_timestamp): # Yes. Use process_time() to measure performance/time. execution_time_measurement.initial_timestamp = pt_timestamp() elif ("process_time_ns" == type_timestamp): # Yes. Use process_time_ns() to measure performance/time. execution_time_measurement.initial_timestamp = pt_timestamp_ns() elif ("time" == type_timestamp): # Yes. Use time() to measure performance/time. execution_time_measurement.initial_timestamp = time.time() elif ("time_ns" == type_timestamp): # Yes. Use time_ns() to measure performance/time. execution_time_measurement.initial_timestamp = t_ns() elif ("monotonic" == type_timestamp): # Yes. Use monotonic() to measure performance/time. execution_time_measurement.initial_timestamp = pm_monotonic() else: # The default option is: "monotonic_ns()" execution_time_measurement.initial_timestamp = pm_monotonic_ns()
# Time units in seconds (s). initial_timestamp = time.time() # Time units in nanoseconds (ns). current_timestamp = t_ns() elapsed_time = current_timestamp - initial_timestamp print("initial_timestamp via time.time() is:", initial_timestamp, ".") print("current_timestamp via time.time_ns() is:", current_timestamp, ".") print("elapsed_time is:", elapsed_time, ".") print( " Error! Combining time measurements in seconds and nanosecond precision would store their values in different time units." ) # Time units in seconds (s). initial_timestamp = pm_monotonic() # Time units in nanoseconds (ns). current_timestamp = pm_monotonic_ns() elapsed_time = current_timestamp - initial_timestamp print("initial_timestamp via monotonic is:", initial_timestamp, ".") print("current_timestamp via monotonic_ns is:", current_timestamp, ".") print("elapsed_time is:", elapsed_time, ".") print( " Error! Combining time measurements in seconds and nanosecond precision would store their values in different time units." ) print("") print( "Conclusion: Cannot combine time measurements in seconds and in nanoseconds." ) print("") initial_timestamp = pc_timestamp()