TGTGInsighttelegram intelligenceLIVE / telegram public index
← Python Заметки

TGINSIGHT SIMILAR POSTS

Најди сличен содржај

Изворен канал @pythonotes · Post #32 · 7 фев.

Скорее всего уже слышали, что складывать строки через + это плохая практика. Падение производительности, и всё такое. Без лишних слов, давайте измерять: from timeit import timeit def t1(): # складываем 10 строк через + из переменной t = 'text' for _ in range(1000): s = t + t + t + t + t + t + t + t + t def t2(): # склеиваем список строк через метод join arr = ['text'] * 10 for _ in range(1000): s = ''.join(arr) def t3(): # складываем через + но не из переменной а непосредственно инлайн объекты for _ in range(1000): s = 'text' + 'text' + 'text' + ... # всего 10 раз Теперь каждую строку склейки запустим по 10М раз >>> timeit(t1, number=10000) 0.21951690399964718 >>> timeit(t2, number=10000) 1.4978306379998685 >>> timeit(t3, number=10000) 0.2213820789993406 Хм, а нам говорили что через "+" это плохо и медленно ))) 😁 Тут стоит учитывать, что речь идёт о склейке множества длинных строк. Давайте изменим условия: def t4(): t = 'text'*100 for _ in range(1000): s = t + t + t + t + t + t + t + t + t def t5(): arr = ['text'*100] * 10 for _ in range(1000): s = ''.join(arr) def t6(): for _ in range(1000): s = 'text'*100 + 'text'*100 + ... # всего 10 раз >>> timeit(t4, number=10000) 12.795130728000004 >>> timeit(t5, number=10000) 2.642637542999182 >>> timeit(t6, number=10000) 0.2184546610005782 Вот, уже другой разговор, сразу видна разница, в среднем в 6 раз. Но погодите, почему последний тест t6() по скорости такой же как и t3()? Ведь строки теперь в 100 раз длиннее! Это вопросы оптимизации кода, какие простые изменения ускоряют или замедляют выполнение программы. Мы столкнулись с примером обхода обращения к переменной. Например, именно так работает директива #define в С++, во время компиляции подставляя значение переменной вместо ссылки на неё. В Python это тоже работает, но часто ли вы сможете встретить такой способ работы со строками? К сожалению, способ почти только теоретический. В целом, тесты показали то, что мы хотели. Делаем выводы самостоятельно. Полный листинг 🌍 #tricks

Резултати

Пронајдени 2 слични објави

Пребарај: #danielmullerschott

当前筛选 #danielmullerschott清除筛选
🎼 CLÁSICA AL ATARDECER 🎻

@ClasicaAlAtardecer · Post #6875 · 18.09.2024 г., 18:00

#Passacaglia#Handel#Halvorsen#JohanHalvorsen#JuliaFischer#DanielMullerSchott Título:Passacaglia Handel-Halvorsen Autor:Johan Halvorsen Interpretación: Julia Fischer (violin) Daniel Muller-Schott (cello) Fuente: 🎼 @ClasicaAlAtardecer

🎼 CLÁSICA AL ATARDECER 🎻

@ClasicaAlAtardecer · Post #6874 · 18.09.2024 г., 18:00

​​#Passacaglia#Handel#Halvorsen#JohanHalvorsen#JuliaFischer#DanielMullerSchott PASSACAGLIA HANDEL-HALVORSEN En esta clase de repertorio para piano vamos a estudiar la partitura de la Passacaglia Handel-Halvorsen. Se trata de una obra compuesta por Johan Halvorsen, compositor, director de orquesta y violinista noruego. Para componer la obra se basó en un tema del famoso compositor alemán Georg Friedrich Handel, de allí el nombre de “Handel-Halvorsen”. La passacaglia está basada en un bajo repetitivo sobre variaciones de una melodía. Passacaglia, o Pasacalles en español, es una pieza musical basada en variaciones, y en esta ocasión Halvorsen desarrolla las variaciones que escribió Handel y añade algunas más, de forma que en una misma pieza podemos ver elementos estilísticos propios tanto del Barroco como del Romanticismo musical. En 1894, cuando trabajaba en director de orquesta en Bergen, realizó esta extravagante adaptación para violín y viola de la Passacaglia de una Suite para clave solo de Haendel. Una passacaglia es una forma de variaciones continuas sobre un bajo que se repite, y Halvorsen elabora las propias variaciones de Haendel con un amplio despliegue instrumental: dobles registros, escalas apresuradas, armónicos y una amplia gama de dinámicas, timbres y articulaciones. @ClasicaAlAtardecer