werehuman 19.07.2011 05:39 Psi+

Развенчаем мифы о конкатенации строк: в современном питоне 2.x выражение "abc" + "def" работает быстрее, чем "%s%s" % ("abc", "def") [почти в 10 раз] или "".join(("abc", "def")) [почти в 8 раз]. Но по скорости одинаково с "abc%s" % "def".

Recommended by:

@rapture: я решил учить \

@ulidtko: ПРЫЩЕБЕНЧМАРКИНГ

@Rondo: номер поста — ГОСТ№ *WOK

and @Crazy_Owl
1. SirAnthony 19.07.2011 08:09 home

Подозреваю, что раз на раз не приходится. У меня в каком-то случае join работал в 2 раза быстрее, чем все остальные методы. Алсо, да, тестируй на юникоде, все равно работают в основном с ним, а значительную потерю скорости дает именно он.

2. nya 19.07.2011 08:26 Gajim

я бы в любом случае, не заморачивался. лучше писать вполне красиво чем быстро. А в питоне от версии к версии оптимизируют разные моменты, например, сейчас быстро работает 'A'+'B', а в следующей версии будет быстрее работать join

3. 238328 19.07.2011 15:23

А есть где-то нормальная оценка производительности str.join() ?

4. ulidtko238328 /3 19.07.2011 15:23 lunatic asylum

> нормальная оценка
str.join() нормально производителен.

5. werehumanulidtko /4 19.07.2011 15:24 Psi+

хочешь сказать, затрачиваемое им время подчиняется нормальному распределению?

6. ulidtkowerehuman /5 19.07.2011 15:25 lunatic asylum

а что, разве это распределение чем-то ненормально?

7. werehumanulidtko /6 19.07.2011 15:25 Psi+

а я не считал

8. werehumanwerehuman /7 19.07.2011 15:25 Psi+

но скорее всего распределения как такового нет

9. ulidtkowerehuman /8 19.07.2011 15:27 lunatic asylum

10. werehumanulidtko /9 19.07.2011 15:27 Psi+

ты настолько задолбал вбрасывать никчёмные утверждения по теме программирования, что я даже не знаю

11. ulidtkowerehuman /10 19.07.2011 15:29 lunatic asylum

ШТО

12. ulidtkowerehuman /10 19.07.2011 15:31 lunatic asylum

ладно, я снизойду до объяснения. /3 — это глупый вопрос, как мне кажется. Что я в саркастическом стиле попытался донести в /4. Да, нормальное распределение здесь абсолютно ни при чём >___<

13. 238328ulidtko /4 19.07.2011 15:37 >>>

НОРМ!

14. 238328ulidtko /9 19.07.2011 15:38 >>>

затроллел

15. ulidtko238328 /14 19.07.2011 15:38 lunatic asylum

а верехуман — хуй.

16. ulidtkonya /2 19.07.2011 15:45 lunatic asylum

раскрою своё мнение по поводу этого итт треда ещё немного.
Вот няша @nya всё правильно сказал. Дрочить на производительность питонокода — это просто моветон. Вам нужна производительность *написания* кода, в большей части юзкейсов сабжеязыка. Лишний СПГС вроде «оценок производительности str.join()» при этом вам только МЕШАЕТ быстро писать код.
В тех же юзкейсах, когда код на питоне нужно одновременно сделать ещё и производительным, есть куча способов решения:
а) профайлинг
б) переписывание «горячего» кода на C (or whatever) через FFI
в) переписывание всего питонокода на тех же плюсах, aka RAD Prototyping.

Ну хоть эти утверждения для тебя не никчёмны, а, @werehuman?

17. 238328ulidtko /16 19.07.2011 15:46

посмотрите какой бугурт

18. ulidtko238328 /17 19.07.2011 15:49 lunatic asylum

ну нихуя себе! мои-то утверждения «никчёмны», и я их «вбрасываю», по мнению уважаемого @werehuman. И как же я его этим уже заебал, просто настолько, что он даже не знает. Как тут не забугуртить!

Вообще, у меня немного скверное настроение; прошу определённой снисходительности к негативу, исходящему сегодня от меня.

19. 238328ulidtko /18 19.07.2011 15:50 >>>

всем пофиг

Do you really want to delete ?