Список кортеж множество
Время выполнения функции в программировании не является статическим и может колебаться в зависимости от множества факторов.
Состояние системы: Функции исполняются в контексте операционной системы и аппаратного обеспечения, и поэтому время их выполнения может меняться в зависимости от текущей загрузки процессора, доступности оперативной памяти, состояния сети и других ресурсов системы.
Асимптотическая сложность: Алгоритмы имеют свойство называемое асимптотической сложностью (или “Big O” сложность), которое представляет собой оценку того, как время выполнения функции будет изменяться с увеличением размера входных данных.
Внешние зависимости: Время выполнения функции может быть также зависим от скорости и надежности внешних служб, таких как базы данных, веб-сервисы или другие API.
Оптимизации: Различные техники оптимизации кода, включая, но не ограничиваясь, кэшированием, мемоизацией и использованием более эффективных структур данных, могут влиять на время выполнения функции.
Параллелизм и конкурентность: В многопроцессорных или многопоточных системах время выполнения функции может быть существенно уменьшено за счет параллельного или конкурентного выполнения кода.
Все эти факторы делают время выполнения функции динамическим, а не фиксированным значением, и оно должно измеряться и анализироваться в контексте конкретной среды выполнения.
Создание
for i in range(500000000)
def test_list():
return [i for i in range(N)]
def test_tuple():
return tuple(i for i in range(N))
def test_set():
return set(i for i in range(N))
Время создания списка: 16.392786040996725 секунд
Время создания кортежа: 23.41975608299981 секунд
Время создания множества: 59.3552262910016 секунд Быстрее всего создается список
Чтение из файла
def read_file_to_tuple(filename):
with open(filename, 'r') as f:
data_tuple = tuple(f.readlines())
return data_tuple
100 Элементов
Время создания списка: 5.824999971082434e-05 секунд
Время создания кортежа: 2.2790998627897352e-05 секунд
Время создания множества: 4.4792002881877124e-05 секунд
10 000 Элементов
Время создания списка: 0.0006547919983859174 секунд
Время создания кортежа: 0.00043170799472136423 секунд
Время создания множества: 0.0008735410010558553 секунд
1 000 000 Элементов
Время создания списка: 0.05641287499747705 секунд
Время создания кортежа: 0.06046500000229571 секунд
Время создания множества: 0.16296950000105426 секунд
10 000 000 Элементов
Время создания списка: 0.8532043750019511 секунд
Время создания кортежа: 0.8773727499938104 секунд
Время создания множества: 2.1774421250011073 секунд
50 000 000 Элементов
Время создания списка: 6.3429488749970915 секунд
Время создания кортежа: 8.09005574999901 секунд