# importing the memory tracking module import tracemalloc from random import random from math import floor, sqrt #from statistics import mean, variance from time import perf_counter # starting the monitoring tracemalloc.start() start_time = perf_counter() # store memory consumption before current_before, peak_before = tracemalloc.get_traced_memory() N = 10**6 Tot = 0 Tot2 = 0 for _ in range(N): item = random() Tot += item Tot2 += item ** 2 mean = Tot / N variance = Tot2 / (N-1) - mean**2 # store memory after current_after, peak_after = tracemalloc.get_traced_memory() end_time = perf_counter() print("mean :", mean) print("variance :", variance) # displaying the memory usage print("Used memory before : {} B (current), {} B (peak)".format(current_before,peak_before)) print("Used memory after : {} B (current), {} B (peak)".format(current_after,peak_after)) print("Used memory : {} B".format(peak_after - current_before)) print("Time : {} ms".format((end_time - start_time) * 1000)) # stopping the library tracemalloc.stop()