Я попытался реструктурировать свой код, чтобы определить функцию в другом файле, и заметил, что она работает немного медленнее.Мне интересно, знает ли кто-нибудь, как предотвратить это замедление или есть известная причина для этого.Я понял, что импорт в python - это то же самое, что и вставка кода при копировании, поэтому это замедление странно для меня.
Пример:
from datetime import datetime
from import_test import small_test_import
def small_test(x):
return x+1
start1 = datetime.now()
for i in range(x):
Z=small_test(1)
end1 = datetime.now()
print(end1-start1) #1.355964
start2 = datetime.now()
for i in range(x):
Z=small_test_import(1)
end2 = datetime.now()
print(end2-start2) #1.433045
или использовать timeit:
def wrapper(func, *args, **kwargs):
def wrapped():
return func(*args, **kwargs)
return wrapped
wrapped = wrapper(small_test, 1)
print(timeit.timeit(wrapped,number=x)) #1.8407
wrapped = wrapper(small_test_imported, 1)
print(timeit.timeit(wrapped, number=x)) #2.1006
Я понимаю, что это не огромная разница во времени, но она последовательна.