Скорее всего уже слышали, что складывать строки через + это плохая практика. Падение производительности, и всё такое. Без лишних слов, давайте измерять:
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
🤩1,000,000 Users in Gamety's Telegram App! 👍
Celebration prize: 250$
Show your love in comments on the Tweet, tag 2 friends and post your BNB wallet. 🔥
This massive milestone is just the beginning, so join the excitement and earn your share of 17.5 Million $GTY 💎 tokens with our gamified Airdrop campaign!
➡️ Go to @GametyApp_Bot now!
Next Step…bring our user #onchain👍
Stay tuned for more big news!
Tweet 🔗:
https://x.com/gametyio/status/1795435819529802165
📎Important Links:
Website | X | Chat | Discord | Announcement | Youtube
⚖️Unlock the advantages of advanced onchain analytics with 10 Bonus Free Days exclusively for Multichain Score holders!
Partnering up with ArbitrageScanner, an ecosystem of #onchain analysis and #cryptocurrency arbitrage products, to deliver more meaningful degen experience for the folks with solid onchain reputation 💪
P.s. ArbitrageScanner is already powering the Nomis Leaderboard—check it out to see how it works!
👇Click the button below to check the offer details and claim your Free Days on available subscriptions!
💠Nomis tApp | X | Discord | YouTube | Check Scores⚖️
🚨MVB 8 Celebration Campaign IS NOW LIVE!
For sure, the smartest move to leverage your brand-new BNB Rep Score which has just launched on BNB Chain by #Binance⚡️
Proud to become a part of BNB Chain ecosystem and share this milestone with YOU in our new campaign linked to our participation in the Accelerator!
🗓1-WEEK duration:
💵Unlimited reward pool starting at $5K
🌱10+ BNB Chain Eco projects w/ perks
❗️ The Score determines your profit! Explore partner planets, complete tasks, and claim your well-deserved rewards — it's that simple!
Your #BNB Score is a power — cause its all about your #onchain reputation on BNB Chain 🌐
Get it, Leverage it, Be Rewarded for holding it 💜
And Stay Tuned for Next Thrilling News 🫵 (We're preparing another cash giveaway 🤑)
🎉 Hello, 2025, from SpotOnChain!
Thank you for an incredible 2024. Big things are coming this year, including the launch of our AI-powered trading agent and the highly anticipated $SOCAI token. 🚀
Here’s to redefining your crypto journey together in 2025! 🥂
#OnChain#SpotOnChain#SOCAI
$ONSING ~ the protective big brother of $PUNCH 🛡️🔥
Solid structure.
Higher highs.
Clean continuation.
Early participants secured partials and continue to ride the trend.
This token builds sustainably, not just pumps.
3AZAjwZZCe8Jf4yccheZ5Z1c2SPEPyoYJHFT3Le2pump
Big brother energy.
#Memecoins#Solana#Crypto#OnChain#Teslacalls🚀
Create/Import your #BASE wallet on #TokenPocketExtension! BuildOnBase
✅In-extension #Base Tokens Cross-chain Swap.
✅Connect with third-party websites in a snap.
✅Smoothly operation and New Interface experience.
👇Add #TokenPocketExtension to your Chrome
https://chrome.google.com/webstore/detail/tokenpocket/mfgccjchihfkkindfppnaooecgfneiii?hl=en
#onchainsummer#OnChain#BASE
【Details】https://twitter.com/TokenPocket_TP/status/1691758198003532191
【Powered By】Crypto Box
🎉 Milestone Alert! 🎉
SingSing has officially surpassed 1.2 MILLION on-chain transactions! 🚀
Thank you to our incredible community for making this possible. Here’s to many more milestones ahead! 💪✨
Read more and open treasure at: X Post
#SingSing#Blockchain#Milestone#OnChain#CryptoCommunity