t = Timer(""" res = "" 


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



ЗНАЕТЕ ЛИ ВЫ?

t = Timer(""" res = ""

Поиск

from timeit import Timer

 

t = Timer(""" res = ""


 


for k in range(1000000,1010000): res += str(k)

""")

 

print t.timeit(200)

 

t = Timer(""" res = []

 

for k in range(1000000,1010000): res.append(str(k))

res = ",".join(res)

""")

 

print t.timeit(200)

 

t = Timer("""

 

res = ",".join([str(k) for k in range(1000000,1010000)])

 

""")

 

print t.timeit(200)

 

Разные версииPythonдадут различные результаты прогонов:

 

# Python 2.3 77.6665899754 10.1372740269 9.07727599144

# Python 2.4 9.26631307602 9.8416929245 7.36629199982

В старых версияхPythonрекомендуемым способом конкатенации большого количества

строк являлось накопление их в списке с последующим применением функции join()

 

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

 

Если требуются более точные результаты,рекомендуется использовать метод repeat(n, k)- он позволяет вызывать timeit(k) n раз, возвращая список из n значений. Необходимо отметить,что на результаты может влиять загруженность компьютера,на котором проводятся испытания.

 

Оптимизация

 

Основная реализация языкаPythonпока что не имеет оптимизирующего компилятора,

 

поэтому разговор об оптимизации касается только оптимизации кода самим программистом.В любом языке программирования имеются свои характерные приемы оптимизации кода.Оптимизация(улучшение)кода может происходить в двух(зачастую конкурирующих)направлениях:скорость и занимаемая память.В условиях достатка оперативной памяти приложения обычно оптимизируют по скорости.При оптимизации по времени программы для одноразового вычисления следует иметь в виду,что в общее время решения задачи входит не только выполнение программы,но и время ее написания.Не стоит тратить усилия на оптимизацию программы,если она будет использоваться очень редко.

 



Поделиться:


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

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