@spbpython

Страница 144 из 785
Danil
21.09.2016
12:39:50
ну он всё таки оптимизатор, а не "смотровая щель"

Dmitry
21.09.2016
12:40:02
ага

нашёл версию: из-за того, что он видит больше инструкций одновременно, чем компилятор во время генерации кода

Serge
21.09.2016
12:52:10
ну, в peephole часто за раздетыми подсматривают... т.е. оно смотрит на голый байткод. вечная шутка про синонимы bare и naked

Google
Serge
21.09.2016
12:52:45
в git же можно вместо git clone --bare написать git clone --naked :)

Zart
21.09.2016
13:04:14
примерно как разница между раздетый и неодетый...

Danil
21.09.2016
15:05:56
псс.. есть xslt либа для json? )

Andrey
21.09.2016
15:07:59
хм

а зачем?

Danil
21.09.2016
15:09:24
есть прокся для внутренних апишек, необходимо иногда преобразовывать данные, хочется делать это декларативно

Andrey
21.09.2016
15:10:49
я так и подозревал почему-то

Serge
21.09.2016
15:11:42
внезапно http://stackoverflow.com/questions/1618038/xslt-equivalent-for-json

Sergey
21.09.2016
15:13:02
не xslt но может упростить http://sedimental.org/remap.html

Serge
21.09.2016
15:13:30
https://stedolan.github.io/jq/ sed for json :)

Andrey
21.09.2016
15:14:18
ну jq я пользуюсь периодически

Danil
21.09.2016
15:14:27
внезапно http://stackoverflow.com/questions/1618038/xslt-equivalent-for-json
это я видел, спасибо, гуглить умею ) хотел узнать почему так делать не стоит

Google
Andrey
21.09.2016
15:14:29
но как я понимаю вопрос был про либу для python

Danil
21.09.2016
15:15:10
ну, там самое живое на java
а где же ему еще быть то ))

Serge
21.09.2016
15:15:19
вообще, прежде всего, json слишком гибкий, чтобы можно было легко программно проверить корректность конкретной трансформации

если не грузить в объекты, то всё сложно

Danil
21.09.2016
15:15:59
не xslt но может упростить http://sedimental.org/remap.html
Спасибо, похоже на то что надо

Serge
21.09.2016
15:16:03
имхо, самое надежное - налабать свой на ноде или поискать для ноды

там хотя бы не будет преобразований регекспами и перкладывания между разными способами представления

ну собственно, очевидно, что оно уже должно было быть https://www.npmjs.com/package/node-json-transform

Danil
21.09.2016
15:18:10
что-то не охото мне пока node тянуть на прод

Serge
21.09.2016
15:18:46
а зато как няшно на колбэках можно было бы проксю сделать;)

Danil
21.09.2016
15:19:05
колбеки? зачем es6 же async )

Serge
21.09.2016
15:19:05
и скачи оно конем

вот так поешь пиццу с человеком, а он потом тебя в твои же слова тыкать будет...

Danil
21.09.2016
15:19:47
python 3.5 + uvloop + httptools || pypy + gevent

Serge
21.09.2016
15:20:31
ну вот pypy все портит;) если бы не он, то gevent в топку:)

а, кстати, uvloop же в 3.6 хотели притащить...

Danil
21.09.2016
15:21:38
он как-то с aiohttp всё равно стрёмно работает, хотя руками не приходилось тестить

Serge
21.09.2016
15:27:37
стремно это в смысле так быстро, что пугаешься?

Google
Serge
21.09.2016
15:28:21
я когда с svn на git перелез только, пугался git checkout <branch>, потому что он работал сразу, меня это пугало;)

Danil
21.09.2016
15:28:47
неа, uvloop не даёт ускорения для aiohttp

https://hsto.org/getpro/habr/post_images/734/695/087/7346950870f6b561274c9f62d351acf5.png

Serge
21.09.2016
15:30:21
https://hsto.org/getpro/habr/post_images/734/695/087/7346950870f6b561274c9f62d351acf5.png
: ) видимо там россыпи питонокода мешают

Roman
21.09.2016
15:36:44
https://hsto.org/getpro/habr/post_images/734/695/087/7346950870f6b561274c9f62d351acf5.png
https://gist.github.com/pfreixes/a863eefab923e2addb00d6561901f915

: ) видимо там россыпи питонокода мешают
>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.

Serge
21.09.2016
15:40:49
который на питоне же, да?

Roman
21.09.2016
15:43:33
не, там всё интереснее )

Serge
21.09.2016
15:43:37
чпок http://aiowsgi.readthedocs.io/en/latest/

Roman
21.09.2016
15:43:40
https://github.com/KeepSafe/aiohttp/issues/858

который на питоне же, да?
но в целом да, тормозит из-за питона )

https://github.com/KeepSafe/aiohttp/issues/858#issuecomment-217771873

Roman
21.09.2016
15:44:43
вот тут подробно

Serge
21.09.2016
15:47:06
но в целом да, тормозит из-за питона )
ну я вот код aiohttp.web вспомнил и сомнений не было

и ни одного flamegraph в тредике. чем они там занимались вообще?

Eugene
21.09.2016
17:56:16
Возвращаясь к той задачке с облаком точек, сделал пару вариантов: "в лоб" и с использованием равномерной сетки. Вариант с сеткой работает быстрее, когда много данных, но выдаёт худший результат с точки зрения распределения точек в прореженном облаке. Оба варианта не справляются с миллиардом точек. 10_000_000 точек вариант с сеткой на моём i7 считает ~30 сек. Вариант без сетки ~50 сек. А код такой получился. https://gist.github.com/espdev/a16f28be634c3c4999d5053ac5d50710 В общем, надо придумывать что-то ещё...

Для миллиардов точек сама структура KD-Tree уже работает слишком медленно. По крайней мере её Cython-реализация cKdTree в Scipy.

Sergey
21.09.2016
18:00:36
а без него нельзя?

Eugene
21.09.2016
18:00:46
Без KDTree?

Sergey
21.09.2016
18:00:57
да

Google
Eugene
21.09.2016
18:01:43
Не знаю. Может и можно. Но как ещё быстро искать соседей? R-Tree или R*-Tree работают примерно с такой же скоростью.

Zart
21.09.2016
18:58:45
по ощущениям человеку хочется рисовать диаграммы вороного в пространстве

Eugene
21.09.2016
19:00:48
по ощущениям человеку хочется рисовать диаграммы вороного в пространстве
Не, для диаграмм Вороного уже есть вагон библиотек, зачем велосипед изобретать?

Alexey
22.09.2016
05:20:17
Получилось поднять Klein на Blackswift. пришлось подключить флэшку, потому как 16мб места было очень мало.

Admin
ERROR: S client not available

Alexey
22.09.2016
05:21:15
Connection:keep-alive Content-Type:text/html Date:Thu, 22 Sep 2016 00:53:04 GMT Server:TwistedWeb/16.4.1 Transfer-Encoding:chunked

Содственно вот. http://kntchk.com/

Alexey
22.09.2016
08:17:11
Омг
А что не так. Не силен в этом

?

Roman
22.09.2016
08:20:16
Я про запуск твистед на такой железке :)

Dmitry
22.09.2016
08:28:20
https://twitter.com/asmeurer/status/778815696775974913

Roman
22.09.2016
08:52:10
граждане, а кто какими реализациями prefix trie пользовался?

Gregory
22.09.2016
08:52:21
https://twitter.com/asmeurer/status/778815696775974913
Да чтож такое то?? Перешел по ссылке и минут на 20 залип в этот ваш твитур

Roman
22.09.2016
08:55:20
Benchmarks show that prefixtree is 200 times slower than the builtin dict and requires 10 times the memory.>

Serge
22.09.2016
09:24:53
коллеги, держаться больше нету сил. кто еще Sentry использует? sentry upgrade 4 часа, "бомба продолжает прыгать" есть ли известный способ выполнить апгрейд без всякого лишнего шлака, типа "fixing number of comments counters"?

Google
Vitali K.
22.09.2016
09:43:59
попадалово

Alexey
22.09.2016
11:06:34
вопрос. запускаю python скрипт. Он работает у себя в фоне. Допустим я поменял что-то в нем. и хочу перезапустить, можно ли как-то сказать python перечитать файл заново? не прибивая процесс?

Alexey
22.09.2016
11:08:43
ок :(

Roman
22.09.2016
11:09:01
Ну, всякие manhole и reload в помощь

Eugene
22.09.2016
11:10:37
В IPython есть autoreload, например http://ipython.readthedocs.io/en/stable/config/extensions/autoreload.html

Alexey
22.09.2016
12:43:29
для такого скрипт надо грамотно писать еще
уже почитал. решил проблему через bash. =)

Danil
22.09.2016
12:43:46
там можно и не грамотно )

Zart
22.09.2016
13:20:21
там можно и не грамотно )
я про то что релоад не затронет созданных объектов

Danil
22.09.2016
13:22:30
Насколько я понял, просто стоит вотчер на баше, который супервизит python скрипт и перезапускает его. Кстати можно было через gunicorn запустить там есть авторелоад

Andrey
22.09.2016
13:35:01
не, ну это перезапуск скрипта. а тут как я понял хотелось горячую замену кода

Zart
22.09.2016
13:36:52
import foo ... reload(foo)

в тройке релоад уехал из встроенных в importlib

а всякие гуникорны и иже с ним делают форк - родитель тупо перезапускает скрипт заново, пока не получит код завершение, а в порожденном процессе крутится тред, который эпизодически сверяет mtime'ы файлов, которые дергаются из sys.modules.values() -> __file__ если хоть чтото поменялось - процесс дохнет и родитель его заводит заново

Serge
22.09.2016
13:44:39
import foo ... reload(foo)
и это единственный путь, только весь контекст модуля почит вместе с модулем. все коннекшены, если они там хэндлились в том числе. аккуратно и очень вдумчиво надо, иначе смысла нет. ну т.е. вот кто мешает. запустить второй процесс, не важно каким способом и роутить все новые соединения туда, а старые отдавать пока не надоест со старого процесса. даже название для такого есть - connection draining

Страница 144 из 785