Скорее всего уже слышали, что складывать строки через + это плохая практика. Падение производительности, и всё такое. Без лишних слов, давайте измерять:
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
#SCR
Scroll торгуется с капитализацией около $8,16 млн
Scroll (SCR), первый проект, который торговался на Binance Premarket, сейчас оценивается всего примерно в $8,16 млн.
За последний год токен упал примерно на 83%.
Контраст особенно заметный на фоне прошлого раунда.
В 2023 году Scroll привлекли $50 млн при оценке $1,8 млрд.
При этом сам проект долго считался одним из самых сильных имен в Ethereum-экосистеме.
Vitalik и Ethereum Foundation не раз позитивно отзывались о Scroll, а сам проект часто называли одним из ориентиров для zkEVM в Ethereum.
🚀 Ethereum Layer 2 Network Scroll Faces Overcharging Issue
Ethereum Layer 2 network Scroll has reportedly overcharged users by more than $50,000 in transaction fees over approximately four days. According to ChainCatcher, this occurred after the Scroll team manually increased two rate multipliers in their gas price oracle six times within six days, each time raising them by 2 to 10 times. This adjustment cumulatively increased the L1 data cost parameter to 1,280 times its original benchmark.
Approximately 139,000 transactions were affected, with the total cost originally estimated at around $280, but users were charged over $50,000. The majority of these transactions were automated by bots. L2BEAT clarified that the overcharging was not due to a sequencer issue but resulted from multiplier adjustments executed through a multi-signature wallet by the team. This incident has raised questions about whether Scroll previously subsidized users with below-cost rates to maintain activity.
Data from DeFiLlama indicates that Scroll's total value locked (TVL) currently stands at $24 million, a significant decline of 96% from its peak of $585 million in October 2024. As of the time of reporting, Scroll has not publicly responded to the issue.
#Ethereum#Layer2#Scroll#Overcharging#GasFees#Blockchain#DeFi#TVL#CryptoNews#TransactionFees#ETH#SCR
🚀 Scroll Users Face Excessive Transaction Fees Due to Multiplier Increases
Scroll users incurred over $50,000 in additional transaction fees following six manual multiplier increases that elevated Layer 1 data charges to 1,280 times the original baseline. According to NS3.AI, L2BEAT reported that approximately 139,000 transactions were impacted over a span of roughly four days, with the baseline cost estimated at around $280. On April 9, the team reduced both multipliers by 160 times. Etherfi Cash bots contributed approximately $35,000 of the excess fees during etherfi's migration to Optimism.
#Scroll#TransactionFees#MultiplierIncrease#Layer1#L2BEAT#NS3AI#Etherfi#Optimism#Crypto#Blockchain#SCR