Скорее всего уже слышали, что складывать строки через + это плохая практика. Падение производительности, и всё такое. Без лишних слов, давайте измерять:
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
KNAUF-Multigrund – bu namlikni singdiruvchi asoslar uchun universal gruntovka bo’lib, asosning singdirish xususiyati aʼlo darajada pasaytiradi va boshqaradi, gips va sement qorishmalarning bir tekisda ushlanishini kafolatlaydi.
Quyidagi ashyolarning yuzasiga ishlov berishga mo’ljallangan: gazobeton va penobeton, keramik yoki silikat g’isht, keramzit va shlakoblok, gips va sement suvoq; beton, sement va gips styajkalar.
Texnik xususiyatlari:
▫️Sarfi: 0,2 kg/m2;
▫️Qurish vaqti: 6 soat;
▫️Rangi: sariq;
▫️Ayozga chidamliligi (ixtiyoriy): 5 sikl;
▫️Qadoq: germetik qopqoqli (qoplam bilan zapaykalanmagan) 10 va 5 kg vaznli chelaklarda;
▫️Saqlash muddati: Shikastlanmagan qadoqda 12 oy;
Ichki va tashqi ishlar uchun.
Sifatli materiallardan foydalaning!
KNAUFʼdan foydalaning!
- - - - -
КНАУФ-Мультигрунд - грунтовка универсальная для впитывающих оснований, отлично снижает и регулирует впитывающую способность основания, гарантирует равномерное схватывание раствора гипсовых и цементных смесей.
Предназначена для обработки поверхностей: газо- и пенобетона, керамического и силикатного кирпича, керамзито- и шлакоблоков, гипсовых и цементных штукатурок; бетонной, цементной и гипсовой стяжки.
Технические характеристики:
▫️Расход: 0,2 кг/м2;
▫️Время высыхания: 6 часов;
▫️Цвет: желтый;
▫️Морозостойкость (опционально): 5 циклов;
▫️Упаковка: ведро с герметичной крышкой (без запайки пленкой) 10 и 5 кг;
▫️Срок хранения: 12 мес. в неповрежденной упаковке
Для внутренних и наружных работ.
Используйте качественные материалы!
Используйте КНАУФ!
YouTube
Instagram
Telegram
#knaufuzbekistan
#Multigrund
KNAUF-Multigrund – bu namlikni singdiruvchi asoslar uchun universal gruntovka bo’lib, asosning singdirish xususiyati aʼlo darajada pasaytiradi va boshqaradi, gips va sement qorishmalarning bir tekisda ushlanishini kafolatlaydi.
Quyidagi ashyolarning yuzasiga ishlov berishga mo’ljallangan: gazobeton va penobeton, keramik yoki silikat g’isht, keramzit va shlakoblok, gips va sement suvoq; beton, sement va gips styajkalar.
Texnik xususiyatlari:
▫️Sarfi: 0,2 kg/m2;
▫️Qurish vaqti: 6 soat;
▫️Rangi: sariq;
▫️Ayozga chidamliligi (ixtiyoriy): 5 sikl;
▫️Qadoq: germetik qopqoqli (qoplam bilan zapaykalanmagan) 10 va 5 kg vaznli chelaklarda;
▫️Saqlash muddati: Shikastlanmagan qadoqda 12 oy;
Ichki va tashqi ishlar uchun.
Sifatli materiallardan foydalaning!
KNAUFʼdan foydalaning!
- - - - -
КНАУФ-Мультигрунд - грунтовка универсальная для впитывающих оснований, отлично снижает и регулирует впитывающую способность основания, гарантирует равномерное схватывание раствора гипсовых и цементных смесей.
Предназначена для обработки поверхностей: газо- и пенобетона, керамического и силикатного кирпича, керамзито- и шлакоблоков, гипсовых и цементных штукатурок; бетонной, цементной и гипсовой стяжки.
Технические характеристики:
▫️Расход: 0,2 кг/м2;
▫️Время высыхания: 6 часов;
▫️Цвет: желтый;
▫️Морозостойкость (опционально): 5 циклов;
▫️Упаковка: ведро с герметичной крышкой (без запайки пленкой) 10 и 5 кг;
▫️Срок хранения: 12 мес. в неповрежденной упаковке
Для внутренних и наружных работ.
Используйте качественные материалы!
Используйте КНАУФ!
YouTube
Instagram
Telegram
#knaufuzbekistan
#Multigrund
KNAUF-Multigrund gruntovkasi va KNAUF-Rotband suvog‘i - gazoblokli devorlar uchun mukammal tandem!
Taʼmir ishlarini oson va tejamkor shaklda oʻtkazing:
• Tekis devorlar - suvoq qatlamining minimal qalinligi 0,5 sm.
• Notekis devorlar uchun - bir martada 5 sm gacha!
• Ortiqcha qadamlarsiz: to‘g‘ri texnologiyada bajarilsa, Rotband ustidan hatto shpaklyovka qilish ham talab qilinmaydi - siz darhol gulqog‘ozlarni yopishtirishingiz mumkin.
————
Грунтовка КНАУФ-Мультигрунд и штукатурка КНАУФ-Ротбанд – идеальный тандем для стен из газоблока!
Сделайте ремонт проще и экономичнее:
• Ровные стены – минимальный слой штукатурки от 0,5 см.
• Для неровных стен – до 5 см за один раз!
• Без лишних шагов: Ротбанд при правильной технологии не требует даже шпаклевания – вы можете сразу клеить обои.
Social
#knaufuzbekistan
#rotband
#multigrund
👷♀️Yangi KNAUF-Multigrund mahsuloti – bu namlikni singdiruvchi asoslar uchun universal gruntovka boʻlib, asosning singdirish xususiyati aʼlo darajada pasaytiradi va boshqaradi, gips va sement qorishmalarning bir tekisda ushlanishini kafolatlaydi.
Quyidagi ashyolarning yuzasiga ishlov berishga moʻljallangan: gazobeton va penobeton, keramik yoki silikat gʻisht, keramzit va shlakoblok, gips va sement suvoq; beton, sement va gips styajkalar.👌
Texnik xususiyatlari
▫️Sarfi: 0,2 kg/m2
▫️Qurish vaqti: 6 soat
▫️Rangi: sariq
▫️Ayozga chidamliligi (ixtiyoriy): 5 sikl
▫️Qadoq: germetik qopqoqli (qoplam bilan zapaykalanmagan) 10 va 5 kg vaznli chelaklarda
▫️Saqlash muddati: Shikastlanmagan qadoqda 12 oy
Ichki va tashqi ishlar uchun.
Sifatli materiallardan foydalaning.
KNAUFʼdan foydalaning
- - - - -
👷♀️Новый продукт КНАУФ-Мультигрунд - грунтовка универсальная для впитывающих оснований, отлично снижает и регулирует впитывающую способность основания, гарантирует равномерное схватывание раствора гипсовых и цементных смесей.
Предназначена для обработки поверхностей: газо- и пенобетона, керамического и силикатного кирпича, керамзито- и шлакоблоков, гипсовых и цементных штукатурок; бетонной, цементной и гипсовой стяжки.👌
Технические характеристики
▫️Расход: 0,2 кг/м2
▫️Время высыхания: 6 часов
▫️Цвет: желтый
▫️Морозостойкость (опционально): 5 циклов
▫️Упаковка: ведро с герметичной крышкой (без запайки пленкой) 10 и 5 кг
▫️Срок хранения: 12 мес. в неповрежденной упаковке
Для внутренних и наружных работ.
Используйте качественные материалы.
Используйте КНАУФ.
#knaufuzbekistan#new#Multigrund