
Sergey
19.09.2016
17:41:56
хм, там ''.join вообще нет
в общем, если вы конкатенируете большое количество строк, то вместо a1 + a2 + ... + an лучше использовать ''.join(A)
но если строк мало, то + может быть эффективнее

Google

Bro
19.09.2016
17:49:56
как эти твики вообще могут влиять на общую производительность?
в конечном итоге все упирается в IO
а те либы где нужна скорость (lxml например) по большей части написаны на сях
в lxml смотрел сурсы там такие файлы http://cython.readthedocs.io/en/latest/src/tutorial/pxd_files.html

Subbotin
19.09.2016
17:53:11
на самом деле по мелочи набегает много. тут строчки не оптимально складываются, там вызов лишний. хуяк и набежало так что в проц упирается
кстати нынче модны всякие облачные платформы с платой за потреблёные ресурсы. там каждая такая экономия начинает напрямую влиять на затраты

Bro
19.09.2016
17:54:30
обычно есть куча жирных мест которые можно оптимизировать.

Sergey
19.09.2016
17:54:38

Bro
19.09.2016
17:54:55
на облачных платформах это пофигу будет
там тебе дадут юнит/дино еще что-то которая может выполнять N операций в единицу времени, возможно с каким-то “burst”
по теме кстати удивительно но сегодня как раз занимался профилированием
есть либа
click

Google

Bro
19.09.2016
17:56:58
от тусовки Армина
которая заменяет argparse всякие

Vlad
19.09.2016
17:57:28
Чем проще добавлять в Джанго мультиязычность? Или просто в моделях поля дополнительные прописать для второго языка

Bro
19.09.2016
17:57:35
вообщем у меня довольно комплексное cli получается, я вынес часть команд в модули отдельные.
для 2х? поля пропиши и менеджер кастомный сделай.
есть еще django-rosetta
так вот python cli.py стартовал чуть ли не секунду
я запустил с профайлом потом взял snakeviz посмотреть
как и подозревал оказалось что __import__(….) грузит все импорты по цепочке.
я убрал часть имортов внутрь функций
стало значительно быстрее

arisu
19.09.2016
18:00:06

Bro
19.09.2016
18:00:14
вот такие оптимизации дают прирость ощутимый а не конкатеция строк или добавление элемента в set

arisu
19.09.2016
18:00:31
конкатенация строк происходит только в str1 + str2
в остальных случаях на вход подаются массивы
или дикты
:D

Bro
19.09.2016
18:07:26
посмотрел статью
пипец
да

Google

Bro
19.09.2016
18:07:33
https://hg.python.org/cpython/file/2.7/Lib/string.py#l545
в конце format()
return ''.join(result)
top kek

Vlad
19.09.2016
18:23:53

Subbotin
19.09.2016
18:24:26
А какой простор оптимизации открывается в "переписать на ..."

Bro
19.09.2016
18:33:17
хз чето ни разу не слышал чтобы это заканчивалось успехом
http://geekforbrains.com/post/why-im-switching-from-python-to-node-js
вот интересно )
прошел год
http://geekforbrains.com/post/after-a-year-of-nodejs-in-production

-
19.09.2016
18:35:49

Sergey
19.09.2016
18:36:10

Bro
19.09.2016
18:36:13
у твиттера
в разумных пределах
у твиттера ресурсы есть и инженеры чтобы не забить болт
да и то это про успехи говорят а сколько фэйлов?
ну и в твиттере скорее всего микросервисная архитектура. этот серч отдает API который уже все остальное потребляет.
я юзал ноду на бэкенде
и пришел к тем же выводам что и тип с статье

Google

Bro
19.09.2016
18:38:36
так что если бэкенд то django + drf
тем более бум ноды пришелся на пик мобильных платформ, когда нужны были инструменты которые бы позволяли обслуживать десятки тысяч коннектов
нода асинхронная
сейчас этого преимущества уже нет, но хайп остался. python3 c asyncio + uvloop может даже по скорости делает. А по удобству делает однозначно.

Cykooz
19.09.2016
20:00:40

Rocket
19.09.2016
20:01:18
я живу с торнадой
как на счет торнады?

Admin
ERROR: S client not available

Sergey
19.09.2016
20:02:07
> Initially, we wanted to test aiohttp ... However, the performance bottleneck in aiohttp turned out to be its HTTP parser, which is so slow, that it matters very little how fast the underlying I/O library is.

Rocket
19.09.2016
20:04:19
угумс, ясно
но что на счет торнадо ?
почему про него забыли...

Sergey
19.09.2016
20:04:57
где забыли?
в тесте есть
посмотри графики по ссылке

Rocket
19.09.2016
20:06:39
угумс, вижу
около 20к на простых запросов

Roman
19.09.2016
20:08:11

Google

Rocket
19.09.2016
20:08:27
значит моя примерная оценка про 2000 ботов на одном хосте - очень даже похожа на реальность
в любом случае, с торнадо я раньше упрусь в ограничения по api

Roman
19.09.2016
20:09:28
И лучше gevent + pypy

Rocket
19.09.2016
20:13:25
гхм
тогда интересный вопрос возникает
а что на счет Монги, Редиса и прочих майскуелев?

Bro
19.09.2016
20:14:06
раньше юзал uwsgi
я юзаю gunicorn

Rocket
19.09.2016
20:15:41
...применительно к uvloop...
под торнадо есть motor
ах, ну да, он же и в asyncio живет...

Bro
19.09.2016
20:28:21
тондадо тоже може запустить по asyncio
докер теперь под osx нативно работает без виртуалки

Rocket
19.09.2016
20:32:43
если же поменять на asyncio, то тогда зачем, собственно, торнадо ?

Bro
19.09.2016
20:36:03
я как-то принимал участи в распиле инвесторского бабла в стартапе
там был торнадо
я когда пришел в команду
начал смотреть
там видимо кто-то начал юзать типа “тонадо прикольный”