Следует учитывать,что программа,реализующая некоторый алгоритм,не может быть оптимизирована до бесконечно малого времени вычисления:используемый алгоритм имеет 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Следует учитывать,что программа,реализующая некоторый алгоритм,не может быть оптимизирована до бесконечно малого времени вычисления:используемый алгоритм имеет

Поиск

 


определенную временную сложность и программу,основанную на слишком сложном алгоритме,существенно оптимизировать не удастся.Можно попытаться сменить алгоритм(хотя многие задачи этого сделать не позволяют) или ослабить требования к решениям. Иногда помогает упрощение алгоритма.К сожалению,оптимизация кода,как и программирование-задача неформальная,поэтому умение оптимизировать код приходит с опытом.

 

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

 

Собственно,в данном примере для модуля timeit уже показан практический способ нахождения оптимального кода.Стоит также отметить,что с помощью профайлера нужно определить места кода,отнимающие наибольшую часть времени.Обычно это действия,выполняемые в самом вложенном цикле.Можно попытаться вынести из цикла все,что можно вычислить в более внешнем цикле или вообще вне цикла.

 

В языкеPythonвызов функции является относительно дорогостоящей операцией,поэтому

на критичных по скорости участках кода следует избегать вызова большого числа функций.

В некоторых случаях работу программы наPythonможно ускорить в несколько раз с помощью специального оптимизатора(он не входит в стандартную поставкуPython,но свободно распространяется):psyco.Для ускорения программы достаточно добавить

следующие строки в начале главного модуля программы:

 



Поделиться:


Последнее изменение этой страницы: 2024-06-27; просмотров: 49; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 216.73.216.156 (0.006 с.)