LINUX.ORG.RU

Сообщения AngryElf

 

python, треды и локи

Делаю многопоточную программулину. Одни потоки наполняют из сети буфера, другие делают с ними какую-нить работу, третьи - данные из буферов отправляют данные дальше по сети.

Столкнулся со странным поведением - тормоза на ровном месте. При 1 input thread, 1 process, 1 output нагрузка проца - около 10%.

Такая же схема, только с другим обработчиком (process) - тоже около 10%.

А когда все запущено вместе (1 input, 2 process, 2 output), начинаются тормоза и переполнения буферов, хотя нагрузка проца сильно далека от 100%...

Сложных блокировок, мешающих работать - вроде бы нету. Все локи достаточно аккуратные (на мой взгляд).

Внутри тредов тормозить особо и нечему. Есть recv, есть fwrite, есть кой-какая обработка потоков, есть множество sleep (спит один процесс, ожидая данных от предыдущего в цепочке процесса).

Почитал это - http://www.python.org/doc/faq/library/#id15

Там говорится, что процессы запускаются строго поочередно, "что б не повредить случайно что-нить параллельной записью". Нафига тогда, спрашивается, нужны локи, если умный интерпретатор с помощью GIL сам лочит всё и вся?

Загадочное шаманство в time.sleep(0.001) в начале run() каждого треда тоже не очень понятно.

В общем, вопрос - как получить настоящую многопоточность в python?

AngryElf
()

«Ошибка» вместо новостей на главной

Сабж. Наблюдается только в залогиненном состоянии (с этого аккаунта).

Пробовал разными браузерами с разных хостов (т.е. дело не в кэше браузера-прокси)

AngryElf
()

Еще чуть-чуть и я разочаруюсь в ООП...

Не знаю, насколько это для Development, пожалуюсь тут.

Итак, Python 2.4.3, Gentoo

Берем код. Простейший класс с одним свойством (типа список).

=======================================================
class buf:
    array = []
    
    def __init__(self):
        pass
    

#порождаем два экземпляра класса        
a1 = buf()
a2 = buf()

#выводим их, что б убедится, что указывают они в разные места
print a1
print a2

#модифицируем в первом объекте свойство
a1.array.append('test')
#опа, а во втором объекте свойство тоже модифицировалось. Шо за нах?
print a2.array

=======================================================

У меня сие выводит примерно так:
<__main__.buf instance at 0xb7c1214c>
<__main__.buf instance at 0xb7c121ac>
['test']

Хотя, по идее, должно в последней строке выдавать пустое множество []


Где я облажался?
AngryElf
()

palm IIIxe <-> irda <-> linux

Имеется донгл на чипе st4200.

Имеется palm IIIxe с инфрапортом.

Имеется линух (gentoo) с ядром 2.6.15.


Собрал и загрузил модуля:

[root@server (~)]# lsmod
Module Size Used by
irtty_sir 8576 0
sir_dev 18988 1 irtty_sir
irport 12992 0
ircomm_tty 36712 0
ircomm 20932 1 ircomm_tty
stir4200 13668 0
irda_usb 16996 0
irda 177116 7 irtty_sir,sir_dev,irport,ircomm_tty,ircomm,stir4200,irda_usb


dmesg пишет так:

NET: Registered protocol family 23
usbcore: registered new driver irda-usb
USB IrDA support registered
SigmaTel STIr4200 IRDA/USB found at address 2, Vendor: 66f, Product: 4200
drivers/net/irda/stir4200.c: IrDA: Registered SigmaTel device irda0
usbcore: registered new driver stir4200
IrCOMM protocol (Dag Brattli)


Интерфейс irda0 появился.

После irattach irda0, irdadump видит palm'а. Если нажать на нем hotsync, наличествуют соответствующие мессаги.

Т.е. якобы всё работает как надо. Но что делать дальше - не совсем понятно.

Например, pilot-xfer -p /dev/ircomm0 -l пишет

Listening to port: /dev/ircomm0
Please press the HotSync button now...


И дальше ничего не происходит.

palm при этом в режиме локального подключения, "ir to pc/handheld".



Сам девайс рабочий, в винде с этим же ir-донглом пашет.

Подозреваю, что проблема именно в /dev/ircomm0. В dmesg по его поводу ни слова нету. Должно быть вообще? Или ircomm0 само хитрым образом заводится и должно пахать?

AngryElf
()

нарезать avi на куски (сам не дурак и фак смотрел) :)

Имеется дамп видеопотока длительностью часов в 8-10. Его надо нарезать на правильные куски (по байтам или по секундам) с минимальной потерей качества (его там и так нету, терять дальше нельзя никак).

Объем файлика - порядка 800 мегов. mplayer при попытке просмотра ставит раком систему, уходя в жестокий своп. Попробовал откусить начало, мегов 30, их mplayer хавает нормально, но дальше кусать не получилось - не признает за видеофайл никак.

Так mplayer говорит на оригинальный файл:

ASF file format detected.
VIDEO: [WMV3] 192x144 24bpp 1000.000 fps 0.0 kbps ( 0.0 kbyte/s)
Opening audio decoder: [ffmpeg] FFmpeg/libavcodec audio decoders
AUDIO: 8000 Hz, 1 ch, s16le, 5.0 kbit/3.91% (ratio: 625->16000)
Selected audio codec: [ffwmav2] afm: ffmpeg (DivX audio v2 (FFmpeg))



Попробовал avisplit (из transcode). Живенько режет на куски, но делает с файлом непонятное - ни mplayer, ни vlc его после этого показывать не хотят (звук есть)

IMediaObject ERROR: 0x855abd9 input format not accepted (0x80040205 : -2147220987)
Failed to create DMO filter
ERROR: Could not open required DirectShow codec wmv9dmod.dll.

Причем, упомянутый wmv9dmod.dll в системе присутствует.

Чего б сделать-то?

P.S. видео - не порево со скрытой камеры, как некоторые анонимусы могут подумать :)

AngryElf
()

новостная лента сломалась?

Последние новости на главной:

Перевод книги CLFS-BOOK-1.0.0

03.10.2006 14:56:18

Super Grub Disk - востановление загрузчика

03.10.2006 15:14:23

PCManFM - файловый менеджер с поддержкой табов

03.10.2006 11:19:57

А в RSS есть и другие -

Уязвимость бинарного формата ядра Линукса

Срд 04 Окт 2006 21:23:10

Почему Linux будет доминировать на серверах

Срд 04 Окт 2006 15:12:57

Qt 4.2 Release!

Срд 04 Окт 2006 10:12:50

Причем, если тыкнуть по ссылке внутри rss, то попадаешь в новость, всё вроде бы нормально...

AngryElf
()

подскажите hex-просмотрщик и hex-калькулятор

перепробовал штук 5 разных, нормального ничего не нашел

От просмотрщика нужно:

1. возможность просмотра файлов любых размеров без глюков на спецсимвлоах (mc плющит - мама не горюй)

2. переход на произвольное место в файле по 16-ричному и десятиричному смещению. Желательно - относительный переход от текущей позиции

Калькулятор:

1. быстрый и удобный ввод с клавиатуры (hexcalc глючит с фокусом, к примеру)

2. возможность на лету переключать 16<->10-ричность

От обоих программ требуется отсутствие зависимостей на kde/gnome (qt/gtk - можно). Вполне устроят консольные версии.

AngryElf
()

Игра требует cdrom в wine, а как его указать-то?

В старых версиях в конфиге, помнится, у cdrom'а кроме точки монтирования можно было указать и девайс, в современных (0.9.8 и 0.9.21) такого параметра не вижу.

Вроде как это должно в реестре прописываться, но описание параметров в документации не найти... Плохо смотрю?

AngryElf
()

Английский - хорошо или плохо?

Думаю, флеймообразующая тема.

Вот возьмем нас, русских (особо русские могут скартавить). Русификация - национальная проблема с национальным решением - не пойми каким. Маны - на английском, доки - там же... Как результат - в любом форуме/фидоэхе/темеЖЖ по малейшим затруднениям с поиском русской доки кричат - учи английский. По-моему правильно. Сам я, к примеру, тот жы пыхпых учил по английским докам. А сейчас что б выучить - инглиш нафиг не нужен - полно инфы на русском... С одной стороны удобно - не надо учить чужой язык. С другой стороны - не изучается один из из международных языков. На том же субьективном примере - я достаточно хорошо овладел английским, не прилагая к этому спец.усилий - просто стараясь понимать (вначале со словарем, а потом и без) англоязычные мануалы, текста, компутерные игры и фильмы, в конце концов.

Хорошо это или плохо?

Возьмем поляков. Куда ни плюнь - везде они. Вышла свежая версия портажей:

$ emerge -p portage

[ebuild R ] sys-apps/portage-2.1.1 USE="-build -doc (-selinux)" LINGUAS="-pl" 0 kB

Linguas - pl. Никого нет, а они уже есть. И так везде, в манах, документации, технологиях (gadu-gadu - _польский_ мессенгер) и прочая. Банально в википедии на польском в 3 раза больше статей, чем на русском при населении в десяток раз меньшем и развитии интернета примерно на уровне России.

Это хорошо или плохо? Да, для новичков будет проще вхождение. Но и использование тоже - надобность в изучении английского практически отпадает.

Третий пример - чехи. Население чуть меньше, чем в Польше, но, любой, пытающийся выбраться за рамки Чехии, обязан знать языки. И в компьютерах (доки на английском), и кино посмотреть (титры на английском). По-моему, неплохо. С любым компутерным спецом всегда можно найти общий язык - английский.

Или может плохо?

Есть у кого-нить какие-нить мысли по поводу изложенного? :)

AngryElf
()

Линукс спасли от нефти!

AngryElf
()

Ядро при загрузке резко уходит в ребут (до монтирования root)

сабж. Соответственно, в логах ничего нету.

Ядро - самосбор из вполне рабочей конфигурации. При загрузке резко уходит в ребут не доходя до монтирования винтов. Перед ребутом что-то пишет на экран, но разглядеть не получается - не успеваем. Вроде бы жалуется на недостающий файл.

в /dev/ всё нужное есть (копировал с кноппикса тупо в mc), /proc тоже имеется

Кноппикс 3.4 или 3.3 оттуда грузится нормально.

Кноппиксное ядро взять не получилось - не могу от него initrd найти :-)

Что делать? Комп далеко, всё делается через другого человека.

Железо примерно следущее - km800 (встроенное видео, 754-й сокет), 512ddr, via rhine, hdd pata western 40gb.

AngryElf
()

icq.jabber.ru у кого-нить работает?

сабж. У меня пишет "disconnected by unknown reason".

P.S. Подскажите кто хороший jabber-сервер с аськой. anarxi.st чё-т давно не работает, а глюки jabber.ru надоели...

AngryElf
()

yahoo messenger и Windows Live Messenger объединились

http://net.compulenta.ru/277614/?r1=rss&r2=remote

Боятся, сцуки, жаббера, боятся... И правильно делают! :)

AngryElf
()

Сегодня день рождения голосовалки на главной

сабж.

3 года, однако.

Выпьем?

AngryElf
()

питоновский биндинг к taglib

есть tagpy - завязанный на boost. 30 кб исходников требуют установки 11-мегабайтного пакета. Спасибо, пока не надо :)

Есть Python-TagLib, который на берлиозе, который лежит уже сутки (по крайней мере, у меня).

Может что еще есть? Гугль вводится в заблуждение слишком распространенным словом taglib :-(

Или может у кого дистр python-taglib завалялся? Киньте в меня, плз (tut-пудель-elfov.net)

AngryElf
()

Работа, а пошла ты...

http://ahom.ru/rabota/

Это какой-то ахтунг. Там внизу есть лог аськи - подписываюсь под каждым словом - песня ест мой моск! :)

AngryElf
()

Чем сейчас модно собирать статистику веб-сайтов?

Сабж.

Требуется

1. анализ посещаемости - откуда (если поисковик, то ключевые фразы в соответствующих кодировках), сколько. Подробные отчеты для анализа по отдельным фразам.

2. фильтр поисковых ботов

3. статистика показов отдельных страниц.

4. Хорошо бы php/mysql.

Пробовал phpmyvisites - кривой до безобразия. Траблы с кодировками ключевиков поисковиков. В конце концов просто заглючил и не пущает в админку :)

awstats и подобные - слабоваты, но использую для сырой статистики.

рылся на sf.net, присмотрел еще phpopentracker. Вообще чудо. Инсталлятора, документация невразумительная...

Я понимаю, что таких проектов вагон и маленькая тележка, но уже заиппался искать эту самую жемчужину в стоге понятно чего.

Кто что использует?

AngryElf
()

Даешь сиквел Star Control 2!

Оригинал (флеш) - http://www.toysforbob.com/database/tfb_news.html

Английский текст - http://www.evilavatar.com/forums/showthread.php?t=11658

Русский вариант - http://www.ag.ru/news/15-04-2006#16089

Алекс Несс, продюсер студии Toys for Bob, в прошлом году ставшей собственностью издательства Activision, мечтает о разработке новой игры в культовой серии Star Control. "Мы (я) хотим сделать сиквел Star Control, - пишет он в своем блоге на сайте компании, - однако крупных издателей трудно убедить в том, что новый SC будет хорошо продаваться на современном рынке. Но, возможно, всего лишь возможно, если достаточное количество людей пришлет мне письма с требованием, чтобы Toys for Bob выпустила настоящее продолжение Star Control 2, я покажу их (и заряженный пистолет) Activision, и тогда они точно согласятся дать &#171;добро&#187;".

Все необходимые разрешения у студии есть - не так давно она вернула себе права на разработку игр во вселенной Star Control. Пока же Toys for Bob космически далека от своей родной стихии. Её новый проект, который будет показан на грядущей Е3, не имеет ничего общего ни со звездами, ни с RPG, ни со Star Control.

Адрес чела - alexness@toysforbob.com

Проспамим? :-)

AngryElf
()

Объясните про часовые зоны

Имеется сайт с международной аудиторией. То бишь, на сайте время отображается в одном стандарте, посетители прикидывают его себе сами.

Что взять за точку отсчета?

Проблема в следущем. Например, я знаю, что время у нас (Europe/Minsk) +2 GMT. Однако это правильно только для зимнего времени. Летом прибавляется еще час и все мои познания идут лесом :-)

Или это один я не знал, что летом и зимой разница с GMT разная (извините за каламбур)? :)

Как вариант, можно подсовывать юзеру данные, подправленные под его часовой пояс, но как узнать, какой пояс у него стоит? javascript вроде позволяет время узнать, но это не наш метод :)

AngryElf
()

Чем смотреть (сконвертнуть) .flv?

Сабж.

Пошарил в гугле, нашел http://asuaf.org/~jj/blog/index.php/2006/01/08/convert-google-video-flvs-into...

Мол, скачать ffmpeg из cvs mplayer'а и им конвертить.

И mplayer, и ffmpeg благополучно много-много ругаются так:

[flv @ 0x8534d44]Unsupported video codec (4)

При этом нету ни видео, ни звука.

mplayer стоит свежей версии (свежее, чем дата того совета) - MPlayer dev-CVS-060302-16:36-3.3.6

Чтобы еще предпринять?

AngryElf
()

RSS подписка на новые темы