31.03.2010, 05:57 | #61 |
Новичок
Из каких соображений эта функция вообще делается через кучу if'ов, а не ассоциативный массив и sprintf? Я может чего-то недопонимаю и она у вас из спецификации автоматически генерится?
upd: Таки выглядеть оно будет примерно так (Извините, код пока не причесан). Последний раз редактировалось epozdnjakov; 31.03.2010 в 07:55. |
|
31.03.2010, 20:12 | #62 |
Администратор
epozdnjakov, А так исторически сложилось :)
Сначала эта функа была внутри аннонсера (по скорости и расходу памяти тупые if-ы все-таки быстрее), а потом практически без изменений перекочевала в фронтэнд - зачем переписывать то что и так работает. К тому же это отдельная функа - кому надо всегда перепишет для себя :) |
|
31.03.2010, 23:11 | #63 |
Новичок
Да я тоже вижу, что заблуждаюсь ;) Не только в производительности, а тупо потому, что вернусь к тому же если захочу нормально отслеживать версии (Например, четвертый октет Уторрента используется только для указания типа релиза, например, B=бета, в остальных случаях ноль; Либторрент вроде использует Azureus-стиль, но почему-то версии там теперь в base64), sprintf превратится в sprintf(format, eval()) :)
Ну и ещё у меня тут пара тупых вопросов, на которую вы, может, ответите. - Насколько реально перепилить фронтэнд на возможность анонимного скачивания? То есть, можно, конечно, сделать пользователя Anonymous и подправить код выдачи торрента, чтобы выдавал его пасскей, но ведь нужно количество анонимных пиров адекватно учитывать (Анонимус ведь либо будет считаться одним, либо будет куча одного и того же анонимуса в статистике). Просто навскидку, ибо сделать мне это необходимо и никуда я от этого уже не убегу. - Как вы относитесь к идее использования на хостинге cgi-анонсера, написанного на C? По-моему, опустит расход ресурсов на порядок. И да, вменяемый бинарный трекер поставить у меня нет возможности, так как все ресурсы и так умещаются на виртуальном хостинге (маленькая релиз-группа, расчет на двести торрентов по десятку пиров на каждый максимум). |
|
31.03.2010, 23:31 | #64 |
Администратор
Довольно легко, но придется работать с версией 2.5 - там уже можно скачивать/раздавать одному пользователю один торрент с нескольких компов. Но для анонимного лучше использовать xbtt версию (1.0) В данный момент в версиях 2.0-2.5 нет поддержки xbtt, т.к. для реализации нужного мне функционала надо было переписывать код бинарника, а в с++ я не настолько силен чтобы написать вменяемый код. Но все равно xbtt не самый оптимальный вариант (станет самым оптимальным если из него вообще выкинуть обращение к базе). Если надо могу более подробно расписать в чем проблема с xbtt (я не говорю что xbtt плох - просто он заточен именно под полностью открытые трекеры) |
|
01.04.2010, 00:00 | #65 |
Новичок
Ну, мне все-таки нужно и анонимный и по регистрациию - у меня один из лидеров форума хочет заняться раздачей доступа в закрытые разделы по рейтингам раздачи. Как я понял, с этим в новых версиях стало лучше. Так что, наверное, все-таки 2.5, хоть он вроде как и не поддерживается. Да я не про то, я именно про переписывание существующего php-анонсера один в один на C и подключения его к веб-серверу. В результате получится просто бинарный скрипт со смешным потреблением памяти :) Вы ведь вроде оптимизировали анонсер, скажите, насколько оправдана борьба именно с накладными расходами самого php? |
|
01.04.2010, 12:40 | #66 |
Администратор
Основная проблема почти всех php- аннонсеров это не пхп как таковой (скомпилированный пхп сам по себе довольно быстрый получается), а сама релизация скрипта, а именно, не возможность нормального сохранения данных между сессиями - общее глобальное пространство переменных и как следствие постоянное насилование базы (ну не любит мускуль постоянные апдейт/селекты одной и той же таблицы), так же никто не учитывает тот факт, что для проверки доступности порта используется стандартная функция, которая отрабатывает долго если порт закрыт (таймаут соединения), минимум 1 сек, что для аннонсера не допустимо, учитывая что аннонсов может быть более 100 в сек. Основная фишка xbtt, не то что он написан на с++, а то что он все данные хранит в памяти и в заданное время синхронизирует с базой, но так же я могу привести кучу примеров когда данная схема будет прикладывать сервера. Так же хочу уточнить что все текущие разговоры имеют смысл только для очень крупных трекеров - количество раздач более 20К пользователей более 100К, и самое смешное что количество пиров уже не становится таким принципиальным, т.к. каждый аннонс отрабатывает очень быстро и основные проседания в производительности происходят именно при пакетном обновлении базы торрентов и пользователей. В данный момент аннонсер 2.5 версии самый быстрый из всех существующих в публичном доступе PHP-аннонсеров для стандартного конфига вебсервера PHP/MySQL (почти стандартного, т.к. все-таки нужен xcache, но его поставить довольно легко, да и для самого форума устанавливать его однозначно рекомендуется). Совсем недавно проверял все аннонсеры (TBDev различные версии, стандартный торрентпир, не xbtt версию и др.) везде значительно больше 1-2 запросов на аннонс и 0-1 запросов на скрейп (как в версии 2.5 с установленным xcache). epozdnjakov, Насчет производительности советую посмотреть в сторону PHPDaemon - переписать текущий аннонсер можно очень легко, но сразу автоматом можно избавиться от прокладок типа xcache-а. Но все равно будут пакетные обновления, описанные выше, которые будут прикладывать базу. Также в PHPDaemon-е есть свой аннонсер в качестве примера использующий MongoDB (кстати данная база значительно быстрее мускуля для конкретной задачи, но совсем не самая быстрая и стабильная из подобных вариантов), можно переписать его. 2.5 версия по максимуму отвязана от самого аннонсера насколько это возможно. А чтобы делать реально быстрые аннонсеры надо просто использовать совсем другие технологии. epozdnjakov, Если есть желание поучаствовать в развитии новой версии движка и если есть знания в битторрент технологии и др. p2p технологий, то просьба отписаться мне в личку или в аську. Новая будет больше ориентирована на открытость/анонимность трекера, но чтобы что-то писать надо точно определиться с функционалом. |
|
25.10.2010, 03:40 | #67 |
Новичок
Skald вопрос по поводу announce.php я так понимаю если сервер перегружен (В настройках форума указан лимит нагрузки) скрипт продолжит выполнение (в плане записи в базу и выдачи статистики)?
Если да, то разумно ограничить его работу (чтобы не нагружал сервер) как это сделано средствами форума?! // Просто нашёл // start server too busy в gloabal.php и задумался... p.s. извиняйте если вопрос слишком уж глупый. |
|
25.10.2010, 22:05 | #68 |
Любитель
Skald,
Ты вот такую вещь видел - _http://www.redragon.cn/ru/ ? Я тут озадачился на эту тему. |
|
25.10.2010, 23:49 | #69 |
Ученик
Cyberdaemon, зашел по ссыле... походу какойто китайский клиент... скачал, поставил... и непонял... устанавливается тупо медиа плеер... остальных описанных возможностей чет не нашел...
|
|
26.10.2010, 14:13 | #70 |
Любитель
BRP, там на сайте сверху справа есть переключение на русский, хотя я вроде ссылку дал уже на русскую страницу. Клиент при установке тоже даёт себя на русский переключить. Штука интересная - возможности перечислены на странице загрузки клиента, смущает то, что клиент платный. А так - поставил лайт версию, тянет на ура, при подключении в 2 мегабита свободно смотрятся фильмы. Хотя тут интересно не столько просмотр, сколько протоколы. Плюс на сайте декларируется некоторая анонимность протоколов.
Последний раз редактировалось Cyberdaemon; 26.10.2010 в 14:24. |
|
Здесь присутствуют: 15 (пользователей: 0 , гостей: 15) | |
|
|
Похожие темы | ||||
Раздел | Тема | Автор | Ответов | Последнее сообщение |
Вопросы, предложения | Обновление до "VBTT v.2.0". Нужна инструкция. | Ramzes | 45 | 21.11.2010 04:29 |