Скорее всего уже слышали, что складывать строки через + это плохая практика. Падение производительности, и всё такое. Без лишних слов, давайте измерять:
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
halogenOS - Official | Android 16 | Nothing Phone (2)
✍️ Details:
- Version: 16.2
- Codename: #Pong
- Updated: 26/05/02
- Type: #Vanilla
🔽 Download: Here
🆘 Support : Here
⚙️ Installation: Here
🔖 Tags : #ROM#AOSP#Official#XOS
✍️ Changelog:
- Dimmed mode
- New launcher app drawer design
- Slidable tiles
- Battery charge limit
- Add font customization
- Add centered lockscreen clock style
- Add VRR mode
- April 2026 Security Patch
- Increase Bluetooth sound quality when using AAC or SBC
✍️ Note:
- Firmware is not included, based on NOS B4.0-251226-1110
- ROM is signed by official halogenOS keys. GApps support and PI not guaranteed (only vanilla with Sandboxed Play is officially supported).
🏆 Credits:
- Chandu
- Pong dev team & testers
- halogenOS Community
👤 Maintainer : @N0m4n904
🔔 Updates : @NothingPhone2Updates
💬 Chat : @NothingPhone2
HalogenOS - Official | Android 16 | Nothing Phone (2)
✍️ Details:
- Version: 16.0
- Codename: #Pong
- Initial Release: 25/09/25
- Type: #Vanilla
🔽 Download: Here
🆘 Support : Here
⚙️ Installation: Here
🔖 Tags : #ROM#AOSP#Official#XOS
✍️ Note:
- Kernel is prepatched KSU
- Firmware is not included, latest is recommended
- ROM is signed by official halogenOS keys. GApps support and PI not guaranteed (only vanilla is officially supported).
- Refer to this post for future updates related to the ROM.
🏆 Credits:
- Chandu for Kernel (and DT which served as as a reference)
- Pong dev team & Testers
👤 Maintainer : @N0m4n904
🔔 Updates : @NothingPhone2Updates
💬 Chat : @NothingPhone2
HalogenOS - Official | Android 16 | Nothing Phone (2)
✍️ Details:
- Version: 16.0
- Codename: #Pong
- Initial Release: 18/08/25
- Type: #Vanilla
🔽 Download: Here
🆘 Support : Here
⚙️ Installation: Here
🔖 Tags : #ROM#AOSP#Official#XOS
✍️ Note:
- Kernel is prepatched KSU
- Firmware is not included, latest is recommended
- ROM is signed by official halogenOS keys. GApps support and PI not guaranteed (only vanilla is officially supported).
- Refer to this post for future updates related to the ROM.
🏆 Credits:
- Chandu for Kernel (and DT which served as as a reference)
- @chrome6boy for testing
- Pong dev team
👤 Maintainer : @N0m4n904
🔔 Updates : @NothingPhone2Updates
💬 Chat : @NothingPhone2
AviumUI - Unofficial | Android 16 | Nothing Phone (2)
📝 Details:
- Version: 16
- Build type: #Vanilla
- Device: #Pong
- Released: 27/11/2025
⬇️ Downloads: Here
📖 Changelogs: Here
🖼️ Screenshota: Here
🏷 Tags: #Avium#ROM#Avium#Vanilla#Unofficial
✍️Notes:
- Vanilla build ONLY
- Initial Nothing camera support available
- SukiSU Ultra and SusFS baked in
- OTA updates are planned in the future, however not supported as of now
- Signed with my keys
- Based on Lineage DT, Vendor and Kernel
- Use latest NOS 3 firmware
- If face any bugs report with logs
🏆Credits:
- Deadlylxrd for so much help with building my first ever ROM
- Chandu for DT
- Fabian & HELLBOY for Glyph
👤 Maintainer: @sevo9128
💬 Chat: @NothingPhone2
🔔 Updates: @NothingPhone2Updates
Лучше выбери свой аромат в парфюмированных гелях NOTALONE, которые привлекают любовь!
Vanilla Lovers - влюбленность
Black pepper Neroli- страсть
Bergamot Amber Wood - глубина
#notalone#парфюмированныйгельдлядуша#blackpepper#vanilla#bergamot
LineageOS - Community | A14 | Nothing Phone (2)
✍️ Details:
- Version: 21.0
- Codename: #Pong
- Released: 17/07/2024
🔽 Download : Recovery | Fastboot
⚙️ Installation: Here
📸 Screenshots: Here
🆘 Support: Telegram
🔖 Tags : #ROM#Vanilla#Community#LOS#QPR3#U#NothingPhone2
✍️ Changelog
- Update from NOS 2.6.0
- USB OTG Fixed
- Fixed Status Bar Padding
- Read Notes 👇
✍️ Notes
- Flash These GAPPS to get Gapps with Pixel Launcher
- Stable Signed Build
- Meteoric kernel is baked in with prepatched KSU.
- Dolby Atmos Included
🏆 Credits
- Chandu for base device tree
- HellboyforMeteoric kernel
- Miki, Unluck & Ghost for all help
- Fabian for PA Glyph Implementation
😎 Maintainer: @Kartikey
🔔 Updates: @NothingPhone2Updates
💬 Chat: @NothingPhone2