*gevent

utros 08.05.2012 14:44

Решил тут для практики написать небольшую программку, которая делает LISTEN на сервере и печатает отправленное пр помощи NOTIFY на консольку, как описано здесь: http://initd.org/psycopg/docs/advanced.h... но с интеграцией в gevent'овский eventloop (а точнее, используя psycogreen) и нифига ... more →

werehuman 12.03.2012 18:43

Да у меня термоядерный баттхёрт от этой асинхронщины, я просидел несколько часов, пялясь в консоль и наблюдая, как ебучий сервер отжирает полмегабайта памяти в минуту. Блядь блядь блядь!
ГРИНЛЕТЫ АСИНХРОНЩИНА КОКОКОКО
ТЫСЯЧИ СТРОК КОДА
УТЕЧКА ПАМЯТИ ДОХУЯ ГИГАБАЙТ В СЕКУНДУ
ДА ЭТО ЖЕ ОЧЕВИДНО КАК ЕЁ ИСПРАВИТЬ
Я до ... more →

werehuman 12.03.2012 18:33

На заметку: никогда, никогда, никогда не использовать gevent.event.AsyncResult.get с бесконечным timeout. Вроде бы отловил злоебучую утечку памяти. Надеюсь.

werehuman 12.03.2012 17:20

http://mrjoes.tumblr.com/post/3197071123...
«Какие общие проблемы у такого подхода:

1. Проблемы со сборкой мусора

Из официальных док: Greenlets do not participate in garbage collection; cycles involving data that is present in a greenlet’s frames will not be detected. Storing references to other greenlets ... more →

werehuman 26.02.2012 19:04

И только сейчас я врубился, что использовать django orm с gevent — достаточно тупая идея, потому что psycopg2 не умеет в cursor.execute в асинхронном режиме. Можно было вообще не ебаться с gevent и писать сразу на джанге.

werehuman 20.02.2012 06:28

Решил проверить свой асинхронный веб-чат на средненькой нагрузочке у себя на ноуте. Он не выдержал ab -c 20. Или я говнокодер, или питон не нужен, или всё вместе. А ещё я пойду искать в нём утечку памяти.

werehuman 27.11.2011 14:50

https://github.com/fvbock/gDBPool теперь у нас есть пул для sql. Пока в альфе, но всё равно его не хватало.

werehuman 10.11.2011 10:38

У меня лютый баттхёрт. Очень лютый. Я докопался до причины моих дедлоков.

Я на что только не грешил. Я переписал дохрена кода на своём асинхронном сервере. Он стал логичнее, проще. Пропали бесполезные метаклассы и WeakValueDictionary, я сделал всё прямо. Не работает.
Правил конфиги апача, подсоединял всё ... more →

werehuman 09.11.2011 12:15

До чего хуёвый день. У меня в коде где-то дедлок, но не удаётся его найти.

arts 04.11.2011 00:58

Интересно, а реально завести gevent на ведроиде?

werehuman 25.08.2011 13:46

http://projects.unbit.it/uwsgi/wiki/Geve... Теперь uWSGI умеет цикл gevent. Да это же извращение, gevent — сам по себе standalone веб-сервер, на кой его запускать через wsgi?

artskb 17.08.2011 10:01

Гуглил тут на предмет связки mongo с gevent и наткнулся на твой пост в жуйцах трёхмесячной давности: http://juick.com/kb/1361486. Как, удалось победить?

werehuman 12.08.2011 15:07

Всё, два дня чтения исходников помогли мне. Я, похоже, въехал в принципы работы gevent. Вот так всегда, восхищаешься чем-то, а глянул в исходники и ужаснулся.

werehuman 11.08.2011 13:16

Решил разобраться, как работает gevent. Набрёл на исходники greenlet. Я думал, оно производит какие-то хитрые манипуляции с интерпретатором... Оказалось, всё гораздо серьёзнее. Оно напрямую манипулирует стеком всей программы! Ассемблерные вставки для каждой архитектуры!
А ещё GC не осилит уничтожить циркулярно ... more →

werehuman 02.08.2011 11:39

gevent 1.0a1 is available
https://bitbucket.org/denis/gevent/src/t...
...
- Added support for multiple OS threads, each new thread will get its own Hub instance with its own event loop.
- Added a way to gracefully shutdown the application by waiting for all outstanding greenlets/servers/watchers: ... more →

werehuman 28.06.2011 11:00

Может кому интересно будет. Результаты моего *«* исследования *»* Личную инфу вырезал. http://ompldr.org/vOTlqdQ

werehuman 27.06.2011 20:13

Вдогонку к #efsth
Добрый человек дал мне протестировать мои штучки на сервере из оптеронов, с суммарным количеством ядер — 48, и 100 гб оперативки.
Результаты просто рандомные, тестовые проги выдавали рандомные результаты не связанно с количеством воркеров. Тем не менее, максимумы почти везде совпадают — кроме ... more →

werehuman 26.06.2011 12:03

Сделал парочку тестов. Веб-сервер (количество воркеров настраивается), на вход — f(x), на выходе — с помощью sympy F(x), f'(x) и решение уравнения f(x) = 0. Сервер на gevent рвёт по всем параметрам сервер на основе BaseHTTPServer. Подробности — может быть когда-нибудь.

werehuman 28.05.2011 12:43

Ох вау http://wiki.inportb.com/wiki/Projects:Py...
geventreactor is a gevent-powered Twisted reactor whose goal is to enable mixing of gevent- and Twisted-oriented code. This allows developers to benefit from the performance of libevent and greenlet while retaining access to the extensive ... more →

werehuman 14.05.2011 14:36

Посмотрите, какая красота http://www.gevent.org/gevent.backdoor.ht...

*gevent is used by:

werehuman

werehuman

Артс

arts