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
10.11.2011 10:38
У меня лютый баттхёрт. Очень лютый. Я докопался до причины моих дедлоков.
Я на что только не грешил. Я переписал дохрена кода на своём асинхронном сервере. Он стал логичнее, проще. Пропали бесполезные метаклассы и WeakValueDictionary, я сделал всё прямо. Не работает.
Правил конфиги апача, подсоединял всё ... more →
werehuman
09.11.2011 12:15
До чего хуёвый день. У меня в коде где-то дедлок, но не удаётся его найти.
arts
04.11.2011 00:58
Интересно, а реально завести gevent на ведроиде?
arts
→
kb
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
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 →