
Roman
15.10.2017
17:14:13

Ale
15.10.2017
17:14:21

amureki
15.10.2017
17:15:36
это как?
Писать на чем нужно требуемый функционал, связывая апишками

Google

Roman
15.10.2017
17:17:12

Ale
15.10.2017
17:18:06
Всё через API, вообще всё.

amureki
15.10.2017
17:18:57
Лучше через апи, да, чем как-то извращаться франкенштейном

Roman
15.10.2017
17:19:35

b0g3r
15.10.2017
17:20:08
да!

Ale
15.10.2017
17:20:13
Exactly. Но так как всё на локалке, оверхед хоть и получается, но небольшой

amureki
15.10.2017
17:20:25
Чем выдумывать проблему :)

Ale
15.10.2017
17:21:51
На самом деле можно же делать монолит + несколько микросервисов для специфичных задач

Roman
15.10.2017
17:22:36

Ale
15.10.2017
17:23:58

Dmitry
15.10.2017
17:24:21

Ale
15.10.2017
17:24:35
Опять-таки, микросервисы — не панацея.

Google

Dmitry
15.10.2017
17:24:51
энивей... @nazarov_tech а доклады на декабрь еще не забиты?

Roman
15.10.2017
17:30:17

Ale
15.10.2017
17:33:09
https://klen.github.io/py-frameworks-bench/

Maxim
15.10.2017
17:36:02
легендарная ссылка

Ale
15.10.2017
17:36:04
Asyncio-фреймворки проседают на первом тесте почему-то

Roman
15.10.2017
17:46:56

Maxim
15.10.2017
17:52:10
а как надо? @pragus

Roman
15.10.2017
17:54:43
а как надо? @pragus
используя голову ) вот
$ wrk -d20s -t10 -c200 [URL]
wtf? -t10 создает 10 тредов, при том что у него MacBook Pro 2015, CPU: 2.7GHz i5, где I5-5257U в котором 2 ядра и HT(итого 4 логических).

Maxim
15.10.2017
17:55:32
а как проводить тестирование у себя на локалке, если ресурсов немного?

Dmitry
15.10.2017
17:56:08

Ale
15.10.2017
17:56:10

Maxim
15.10.2017
17:56:57
и что там запускать?
и да деплой чего-то неочевидно долгий, но фиг с ним допустим задеплоили

Roman
15.10.2017
18:05:10

Andrey
15.10.2017
18:07:43
а я правильно понял, что и мишень и стрелялка у него на одной машине были?

Maxim
15.10.2017
18:07:53
да

Andrey
15.10.2017
18:08:05
ну это же вообще жопа

Roman
15.10.2017
18:08:16
Asyncio-фреймворки проседают на первом тесте почему-то
там не очень честное сравнение, потому что тот же meinheld - один из самых быстрых event loop и задача первого теста - это про "быстро принять коннект и выплюнуть json". json у всех +/- одинаковый и дальше остается только оверхед от event loop.
фактически, там сравнивается event loop + http-сервер.

Google

Roman
15.10.2017
18:08:50
falcon-bench, pypy2
Results:
1. falcon..............367889 req/sec or 2.72 μs/req (172x)
2. bottle..............197207 req/sec or 5.07 μs/req (92x)
3. falcon-ext..........181582 req/sec or 5.51 μs/req (85x)
4. werkzeug.............65341 req/sec or 15.30 μs/req (31x)
5. django...............15540 req/sec or 64.35 μs/req (7x)
6. flask.................3041 req/sec or 328.84 μs/req (1x)
7. pecan.................2136 req/sec or 468.09 μs/req (1x)
falcon-bench, pypy3
Results:
1. falcon..............111719 req/sec or 8.95 μs/req (192x)
2. bottle...............99140 req/sec or 10.09 μs/req (171x)
3. falcon-ext...........22898 req/sec or 43.67 μs/req (39x)
4. werkzeug.............18269 req/sec or 54.74 μs/req (31x)
5. flask................15227 req/sec or 65.67 μs/req (26x)
6. django...............15005 req/sec or 66.64 μs/req (26x)
7. pecan..................581 req/sec or 1722.19 μs/req (1x)


Serge
15.10.2017
18:55:33

Stepan
15.10.2017
19:06:42
Ох, вот эти все микрооптимизации это прям бич разработки. конечно прикольно мериться циферками, чувствуешь себя ИНЖЕНЕРОМ, делаешь чтобы СКЕЙЛИЛОСЬ. Вот только в итоге сроки съехали, написано куча лишнего кода (который бы не пришлось бы писать с более большими и взрослыми инструментами), а пользователей все нет, так что не понятно куда и зачем скейлить. А потом раз и пивот и все нужно выкидывать ?

Maxim
15.10.2017
19:07:21
кек, подсказка: есть не стартапы

Stepan
15.10.2017
19:09:24
кек, подсказка: есть не стартапы
Не ну если уже есть продукт, определен боттлнек и надо оптимизировать то кто же спорит. Есть пользователи - значит заслужил пооптимизировать и поиграть в архитектора ?

Serge
15.10.2017
19:13:25

Roman
15.10.2017
19:13:26

Serge
15.10.2017
19:14:01

Stepan
15.10.2017
19:17:50

Roman
15.10.2017
19:18:55

amureki
15.10.2017
19:19:03

Stepan
15.10.2017
19:21:23
(за исключением случаев где надо просто наколбасить api proxy)

Roman
15.10.2017
19:23:55

Stepan
15.10.2017
19:24:59

Roman
15.10.2017
19:25:46

Stepan
15.10.2017
19:27:39
угу. и?
ну ты сказал "заедомо медленный". является например django заведомо медленным и стал бы ты менять все ти ништяки которые он дает на условный sanic который заведомо "побыстрее"?

Google

Roman
15.10.2017
19:28:09

Stepan
15.10.2017
19:29:00
алсо, то что требует поддержки соединений сразу буду писать на ноде, наигрался я с asyncio в python, спасибо

Roman
15.10.2017
19:31:42

Stepan
15.10.2017
19:32:44
ну именно потому, что задача простая (тое обычный crud) то возьму то, что делает это с минимальным бойлерплэйтом
ну тут факторы еще, если на проекте реляционная база то нужен инструментарий чтобы с этим жить. при всей моей любви к sqlalchemy, миграции там днище и с django жить куда легче

Admin
ERROR: S client not available

Sergey
15.10.2017
19:35:21
Иногда просто не нужно заниматься преждевременной оптимизацией.

Roman
15.10.2017
19:35:26

Sergey
15.10.2017
19:36:31
Не правильный, а удобный, я бы сказал :)
Заказчику зачастую нужно быстро и чтобы работало

Roman
15.10.2017
19:37:09
угу )

amureki
15.10.2017
19:37:24
Если тебе удобно ложкой забивать гвозди, бери ложку

Sergey
15.10.2017
19:37:35
Именно

amureki
15.10.2017
19:37:37
Иногда это быстрее, чем читать инструкции к молотку :D

Sergey
15.10.2017
19:37:41
Кто на что горазд :)

Google

Stepan
15.10.2017
19:38:16

Roman
15.10.2017
19:38:31
допустим, вы - небольшая компания с пользовательской базой в несколько десятков млн юзеров и вы хотите предоставлять им некую новую услугу. пусть это будет впн, например.
и там апишечкая простая: узнать баланс, узнать остаток трафика, итп. и вот это все будет дергаться каждым раз в несколько минут

Stepan
15.10.2017
19:40:53

Maxim
15.10.2017
19:42:36
просто от души брат

Roman
15.10.2017
19:42:46
и это просто еще один сервис компании

Stepan
15.10.2017
19:43:34

Roman
15.10.2017
19:44:26

Danil
15.10.2017
19:45:04

Stepan
15.10.2017
19:45:44

Roman
15.10.2017
19:46:28

Stepan
15.10.2017
19:48:08

L'Alchimiste
15.10.2017
19:48:48

Stepan
15.10.2017
19:48:59

Roman
15.10.2017
19:50:00

Stepan
15.10.2017
19:50:27

Sergey
15.10.2017
19:50:50

Roman
15.10.2017
19:51:47

Sergey
15.10.2017
19:51:49