Ru-Board.club
← Вернуться в раздел «Программы»

» greylink dc++

Автор: Memfivosfey
Дата сообщения: 31.10.2014 15:34
Всем доброго времени суток! Подскажите пожалуйста, есть ли у этого Клиента возможность указывать в строке поиска не конкретную строку, а осуществить поиск по маске.

К примеру, я хочу найти файл, в названии которого есть два слова, но я не знаю в каком порядке они идут.

Или допустим, хотел найти музыку в формате dts исполнителя Enya. Я могу либо задать запрос: "dts" либо запрос: "Enya", а как-то типа dts*enya запрос построить нельзя?!

Может быть есть другие клиенты DC+ с подобными возможностями?
Автор: kmscom
Дата сообщения: 06.11.2014 02:50
для это не надо что то искать, а надо уметь пользоваться тем, что уже есть
Автор: koresh_nash
Дата сообщения: 09.11.2014 02:15
Очень всем рекомендую открыть базу с настройками gl2.db3 и добавить туда индексы по полям на самые большие таблички. У меня gl2.db3 весит 450 метров. Удалять я его не могу, т.к. там лежат хеши всех скаченных мною файлов. Именно по цвету файлов я определяю, что уже скачивал ранее, чтобы не качать еще раз. Грейлинк после добавления индексов начал летать .-) Подойдет любой администратор SQLite баз. Ленивый автор софта не сделал это сам...
Автор: PimenovPavel
Дата сообщения: 09.11.2014 10:39
Укажи конкретнее какие индексы создал дополнительно.

Автор: mystral
Дата сообщения: 09.11.2014 10:59
koresh_nash

Цитата:
Очень всем рекомендую открыть базу с настройками gl2.db3 и добавить туда индексы по полям на самые большие таблички


Цитата:
Укажи конкретнее какие индексы создал дополнительно.

На примере возможно показать? Будет полезно и в шапку добавить.
Автор: koresh_nash
Дата сообщения: 09.11.2014 13:37
Секрет ускорения GreyLink - создание индексов:

CREATE INDEX [IX_DLQUEUE___C_ROOT] ON [DLQUEUE]([C_ROOT]) ;
CREATE INDEX [IX_DLQUEUE___ADDED] ON [DLQUEUE]([ADDED]) ;
CREATE INDEX [IX_DLQUEUE___TARGET] ON [DLQUEUE]([TARGET]) ;
CREATE INDEX [IX_DLQUEUE___TEMPTARGET] ON [DLQUEUE]([TEMPTARGET]) ;
CREATE INDEX [IX_DLSOURCE___C_PEER] ON [DLSOURCE]([C_PEER]) ;
CREATE INDEX [IX_DLSOURCE___C_DLQUEUE] ON [DLSOURCE]([C_DLQUEUE]) ;
CREATE INDEX [IX_MESSAGE___TM_STAMP] ON [MESSAGE]([TM_STAMP]) ;
CREATE INDEX [IX_MESSAGE___MSG_CODE] ON [MESSAGE]([MSG_CODE]) ;
CREATE INDEX [IX_MESSAGE___N_MESSAGE] ON [MESSAGE]([N_MESSAGE]) ;
CREATE INDEX [IX_PEER___CID] ON [PEER]([CID]) ;
CREATE INDEX [IX_PEER___NICK] ON [PEER]([NICK]) ;
CREATE INDEX [IX_PEER___LASTIP] ON [PEER]([LASTIP]) ;

1. индексы ко всем таблицам, где более таблицы не пусты, это зависит от ваших персональных настроек
2. индекс на поле PRIMARY KEY или уже созданные индексы создавать повторно не надо, хотя, созданный по ошибке двойной индекс практически не ухудшит общее резкое ускорение
3. индекс на каждое поле каждой таблицы в отдельности (а не составной индекс сразу на несколько полей)
4. индексы на поля типа "Filesize", "Time", "Flags" создавать не нужно, т.к. вряд ли по ним идет выборка (см. пункт 2).

Софт - SqliteDog и SQLite Maestro, десятки других. Бекапим файл перед операциями. Не при запущенным GrayLink. Если какие таблицы битые и не открываются, в SqliteDog есть команда "Очистить таблицу" без уничтожения ее структуры. Частично битые таблицы можно восстановить командой ".dump <имя таблицы>" из команды "sqlite3.exe gl2.db3" с оф.сайта SQLite и потом вставив дамп в очищенную таблицу. Еще команду "sqlite3.exe gl2.db3 VACUUM" можно применить, для сжатия пустого места, но на скорость не влияет.
Автор: PimenovPavel
Дата сообщения: 11.11.2014 17:43
т.е. ты не нашел конкретное поле по которому идет where
а при этом разрабы грея забыли построить индекс?

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

и как ты измерял ускорение?
визуально - может у тебя другие факторы повлияли?
например тот-же VACUUM - он дефрагментирует базу и уменьшает дисковые операции

вот пример - ты порекомендовал построить индекс по

CREATE INDEX [IX_MESSAGE___N_MESSAGE] ON [MESSAGE]([N_MESSAGE]) ;

открой фаром екзешник и поищи там N_MESSAGE в виде полного слова
1. создание таблицы
create table MESSAGE(C_MESSAGE integer not null primary key,TM_STAMP int64 not null,MSG_CODE integer not null,C_ROOT integer not null,N_MESSAGE varchar(512))
2. вставка в нее
insert into MESSAGE (C_MESSAGE,TM_STAMP,MSG_CODE,C_ROOT,N_MESSAGE)
select C_MESSAGE,TM_STAMP,MSG_CODE,C_TTH,N_MESSAGE from SRC.MESSAGE

вывод - ты своим индексом только тормознешь операцию insert

Конечно разрабы грея могли зашифровать остальные запросы в бинарнике
но все равно сложно найти применение индекса по полю N_MESSAGE
Автор: koresh_nash
Дата сообщения: 11.11.2014 20:21
Не могу не согласиться, тем не менее твои замечания вызывают лишь улыбку:
1. до индексов скорость запуска - 40-60 секунд (100% iostat под 60-80Мб/с), после индексов - 2 секунды
2. конкретно поле MESSAGE у меня во всей таблице NULL, следовательно размер индекса по этому полю так же нулевой (я вообще изначально эту таблицу грохнул, но почему-то накрылась история закаченных файлов)
3. гигантское ускорение от создания нужного не созданного индекса где-то на 2-3 порядка эффективнее, чем торможение лишним индексом
4. пункт 3 объясняется тем, что софт редко пишет новые строки, но часто их читает... новые строки появляются, когда я добавляю файл на скачку или скачка завершается, чтений и обновлений уже созданных строк (без перестроения индекса) совершается десятками-сотнями операций в секунду
5. я минут 10 искал в инете софт, перехватывающий трафик от чужого приложения к локальной псевдобазе SQLite, но ничего не нашел... более 10 минут траты личного времени, чтобы сделать задачу более правильно (с анализом WHERE) не целесообразно
6. мое ускорение запуска базы на 450Мб (только история скаченных файлов и очереди закачки) с 60 секунд до 2х можно уменьшить до 1,5 или 1 секунды... но кого уже будет волновать такая мизерная дополнительная эффективность, на фоне достигнутой
7. VACUUM уменьшил базу с 450Мб до 380Мб, на скорость это не повлияло, поэтому я и говорю, что это не существенно

Если хочешь чем-то помочь юзерам софтины - сделай батничек, который накатит дамп с созданием индексов. Не программеры то не вдупляют, что за термины используются - индекс, поля, таблицы и т.д...
Автор: Kiril777
Дата сообщения: 18.11.2014 13:29
PimenovPavel
koresh_nash
есть какаято сборка с внесенными изменениями для ускорения? если нельзя выкладывать, то отпишитесь пожалуйста в лс, буду очень рад))
спасибо!
Автор: koresh_nash
Дата сообщения: 27.11.2014 03:07
Итак, на счет ускорения GreyLink в 100-1000 раз. Это сообщение - самое важное сообщение среди всей информации про софтинку =)

1. Закрываем greylink dc++ . В ее каталоге Setting есть файл "gl2.db3". Это и есть база. Бекапим!

2. Инсталлируем SqliteDog (скачивал варез, кажись, с Руборда). Запускаем. Файл - Открыть базу - указываем файл из пункта 1.

3. Если сделано правильно, в левой части программы появятся слова "BTFILE", "MESSAGE" и прочие названия таблиц, около 15-20 шт. Можно потыкать и посмотреть содержимое. При просмотре сразу нажимайте внизу справа на "Стоп" в виде красной кнопки, иначе он будет в окно подгружать все содержимое таблицы и зависнет. Внимание: на кнопку "BEGIN" внизу справа не нажимать!

4. Теперь главное. В софтине есть вкладка SQL (темная). Копируем туда в поле ввода текст

CREATE INDEX [IX_DLQUEUE___C_ROOT] ON [DLQUEUE]([C_ROOT]) ;
CREATE INDEX [IX_DLQUEUE___ADDED] ON [DLQUEUE]([ADDED]) ;
CREATE INDEX [IX_DLQUEUE___TARGET] ON [DLQUEUE]([TARGET]) ;
CREATE INDEX [IX_DLQUEUE___TEMPTARGET] ON [DLQUEUE]([TEMPTARGET]) ;
CREATE INDEX [IX_DLSOURCE___C_PEER] ON [DLSOURCE]([C_PEER]) ;
CREATE INDEX [IX_DLSOURCE___C_DLQUEUE] ON [DLSOURCE]([C_DLQUEUE]) ;
CREATE INDEX [IX_MESSAGE___TM_STAMP] ON [MESSAGE]([TM_STAMP]) ;
CREATE INDEX [IX_MESSAGE___MSG_CODE] ON [MESSAGE]([MSG_CODE]) ;
CREATE INDEX [IX_MESSAGE___N_MESSAGE] ON [MESSAGE]([N_MESSAGE]) ;
CREATE INDEX [IX_PEER___CID] ON [PEER]([CID]) ;
CREATE INDEX [IX_PEER___NICK] ON [PEER]([NICK]) ;
CREATE INDEX [IX_PEER___LASTIP] ON [PEER]([LASTIP]) ;

и нажимаем F5, чтобы исполнить этот запрос.

5. Сервис - управление:
a) сжать базу (VACUUM)
b) оптимизировать индексы (ANALIZE)
c) перестроить индексы (INDEXES)

Команды выполняются долго, о чем свидетельствует таймер в заголовке окна. Не прерывайте. Если таблицы местами битые - то будут некоторые ошибки. Битые таблицы нужно починить, иначе GreyLink будет вечно подвисать. Обратитесь к программисту, он сможет найти дублирование уникального индекса (удалить их) и частично восстановить данные в битых таблицах. Частично битые таблицы можно восстановить командой ".dump <имя таблицы>" из команды "sqlite3.exe gl2.db3" с оф.сайта SQLite и потом вставив дамп в очищенную таблицу. Перебирая имя таблиц при создании дампа и можно выяснить, кто именно побился. Еще сам GreyLink в статусной строке иногда про это пишет.

6. В самом низу софтины, где обычно статусная строка, есть куча настроек. Аккуратно: в выпадающем меню (4е справа), где выбрано "DELETE", заменить на "WAL".

Кто хочет эксперимент: можно поставить "OFF". Но, не знаю, будет ли работать и даст ли это прирост. Вообще, можно все виды журналирования транзакций пробовать. Но это опасно .-) "DELETE" & "WAL" - самые безопасные режимы, чтобы база не билась, когда GreyLink вырубают некультурно (отключение питания). "OFF" - быстрее, но небезопасно к сбоям. "DELETE" - самый тормозной режим.

При переходе в WAL режим база обзаведется еще 2мя файлами: gl2.db3-shm + gl2.db3-wal

7. Закрываем SqliteDog, запускаем GreyLink. Радуемся, что база в ~450 метров оптимизирована и грейлинк стал запускаться за 1,5 секунды! Проверяем весь функционал, что данные в таблицах исправлены и не удалились из-за ваших кривых рук, скорость работы повысилась и тормоза с подвисаниями на корню исчезли .-)

8. Бекап не удаляйте. Если все накроется медным тазом, то проделайте все, что выше, еще раз, только "DELETE" на "WAL" не изменяйте. Желательно внешними средствами, пока GreyLink не запущен, бекапить весь каталог настроек.

9. Данным методом можно ускорить кучу другого софта, включая служебные таблицы на телефонах (iOS, Android). SQLite базы - повсюду. Например, настройки Firefox уже оптимизированы и ускорять некуда (WAL+индексы).
Автор: 4Pips
Дата сообщения: 27.11.2014 08:38
Спасибо за детальное изложение. Вот теперь акценты расставлены справедливо, а именно: если у вас "тормозит" какое-то приложение, то возможно это из-за битых таблиц. Если их грамотно почистить, то ваше приложение станет работать быстрее.
Ваша база в 450МБ - это не результат работы нескольких месяцев, это наследие, с которым просто не хочется расставаться. Скорее всего такая база начала составляться много версий назад, и в результате накопились ошибки. Конечно надо за этим следить.
В самом Грейлинке есть возможность почистить базу данных, но если они были записаны криво, а очень хочется их сохранить, то потребуются более мощные сторонние инструменты. Помимо уже названного SQliteDog, можно посоветовать еще SQLite Expert Professional.
Автор: KobaBR
Дата сообщения: 14.12.2014 16:59
GreyLink 0/58 x64

Где хранятся настройки ???
В setting ничего нет


И еще проект умер что ли???
Автор: vzhik66
Дата сообщения: 14.12.2014 21:50
Можно было бы в шапке выложить список хабов, или ссылку на список!
Автор: irabel
Дата сообщения: 17.12.2014 20:31
vzhik66
http://dchublist.ru
в настройках интернет-хабов этот адрес по умолчанию
Автор: brduakh
Дата сообщения: 19.12.2014 10:49
KobaBR
давно проект умер, используйте FlylinkDC++ намного функционален сейчас, имеет свой установщик, хабы и совершенствуется постоянно!
Автор: 4Pips
Дата сообщения: 19.12.2014 11:39
brduakh
Flylink "совершенствуется постоянно" - согласен,
"намного функционален сейчас" - не согласен.
Автор: lordbss
Дата сообщения: 19.12.2014 11:53
brduakh
> имеет свой установщик, хабы

"Только сегодня при покупке квартиры вы получаете в подарок Бейсболку!!!"
Автор: brduakh
Дата сообщения: 19.12.2014 19:37
4Pips
интересно, а какой же клиент сейчас лучше флая? апекс? диси++ в которых ничего нового, 5 ошибок месяцами правят... и то по кругу одно и тоже, а грей уже неактуален своим функционалом, на новых системах падает, в добавок флай уже игнорит просто грей, да и защита в флае сильнее от ботов и вообще от всякого флуда и спама
Автор: 4Pips
Дата сообщения: 20.12.2014 09:11
brduakh
С задачами Найти, Скачать и Раздавать хорошо справятся многие клиенты, например EiskaltDC++ или классический DC++. Но вам нравится термин функционал. Я не являюсь фанатом чего-либо, тем более какого-то софта, но ваша фраза "грей уже неактуален своим функционалом" кажется мне несправедливой. Если мы с вами примерно одинаково изучили возможности грея и флая и вы настаиваете на своей фразе, то это уже скорее вопрос веры. Как работает грей в Windows8 я не знаю, но в более ранних версиях и в Linux(wine) мне кажется, но не настаиваю, что грей смотрится лучше других в плане наличия дополнительных возможностей. Флай тоже очень хорош, но несмотря на свежесть его версий, с фразой "грей уже неактуален своим функционалом" многие не согласятся.
Автор: Alexyz21
Дата сообщения: 08.01.2015 18:37

Цитата:
с фразой "грей уже неактуален своим функционалом" многие не согласятся

Это точно - lua в грее позволяет расширять функционал, во флае же это невозможно.
Автор: Shadowland
Дата сообщения: 30.01.2015 20:23
у кого-нибудь сохранились списки расширений которые соответствуют категориям поиска (аудио\сжатый\документ\исполняемый файл\картинка\видео\CD/DVD) ?
поделитесь пожалуйста



промежуточный результат собранный анализом результатов поиска такой:
ape|flac|mid|mp3|ogg|wav|wma
7z|ace|bz2|gz|rar|tgz|zip
chm|doc|docx|htm|nfo|odt|pdf|ppt|pptx|rtf|txt|xls|xlsx
com|exe|msi
ai|bmp|dcx|eps|gif|ico|img|jpeg|jpg|pcx|png|psd|psp|tga|tif|wmf
avi|divx|flv|m2v|mkv|mov|mp4|mpeg|mpg|ts|vob|wmv
cue|iso|isz|mdf|mds|nrg|pdi

кому-нибудь есть что добавить ?
Автор: PimenovPavel
Дата сообщения: 30.01.2015 20:27
Какой в грее точно неизвестно
у флая вот такой

https://github.com/pavel-pimenov/flylinkdc-r5xx/blob/fa143725b0bb73dcf85af7cbfb113122c242f006/client/ShareManager.cpp#L1814
Автор: snike0437
Дата сообщения: 17.04.2015 17:26
Судя по табличке отсюда полноценной альтернативы грею нет Разве что флай, но он по функционалу не дотягивает...
Автор: PimenovPavel
Дата сообщения: 17.04.2015 21:25
А какой важной функции от грея не хватает во флае?


Автор: snike0437
Дата сообщения: 21.04.2015 13:24
Извиняюсь, поторопился с выводами. Поставил последнюю версию Flylink - все, что мне необходимо было в грее, в флае тоже уже есть
Автор: Shadowland
Дата сообщения: 30.04.2015 23:51
PimenovPavel
например:
- регекспов и типов поиска в автопоиске - сильно не хватает во флае
и многого другого:
- некоторых так называемых читов
- разных настроек для разных хабов (в том числе разных шар, поисковых интервалов, и т.д.)
- настроек списков пользователей (как минимум раздела "цвета и значки юзеров")
- инструментов чистки бд (окошка "модуль оптимизации базы данных")
- игнор в чате/личке (RegEx)
- раздела настроек "вкладки"
- раздела настроек "база данных TTH"
- и т.д. и т.п.
Автор: brduakh
Дата сообщения: 01.05.2015 02:37
Shadowland
о читах, помоему когда-то говорилось, что их нет и не будет, а прочее из выше перечисленного, хлам...
Автор: Shadowland
Дата сообщения: 01.05.2015 04:11
brduakh
брехня "когда-то говорилась", ибо часть так называемых читов во флае уже давно присутствует,..
а отсутствие "прочего из вышеперечисленного" делает флай чугуниевой хреново-настраиваемой неудобной программой, на фоне грея
Автор: 4Pips
Дата сообщения: 01.05.2015 09:47
1. Запустил-нашёл-скачал-закрыл.
2. Запустил-выключил монитор-ушёл (сервер).
3. Запустил...столько всего надо настроить ... фоновые рисунки вкладок, цвета "градусников" загрузки и отдачи, иконок что-то мало... и смайликов, на разные хабы буду ходить под разными никами и с разным описанием, нужен прикольный тест-вопрос на личку, подменю-ка я описание моего клиента, причем разным хабам сделаю разные..., включу-ка оповещение о появлении некоторых юзеров... что-то вид оповещения не супер - поправил, ...юзеры, отсекаемые ip-фильтром будут у меня синенькие, кому я ограничил скорость скачивания - малиновые, у кого шара менее 20ГБ - красненькие, у кого менее 10ГБ - бан на скачивание, у кого слотов 0 - тоже бан, некоторым юзерам поставлю специальную шару, некоторым хабам тоже, заблокирую информационные сообщения от хабов - надоели, а пусть БД показывает провайдера юзера по его ip... и город ..., ...пора бы уже почистить БД..., напишу-ка я скрипт для... для рассылки сообщений...
Автор: Shadowland
Дата сообщения: 02.05.2015 01:55
4Pips
1 лицо бить за такое надо, ибо DC - файлообменая сеть
2 вполне подходит для DC-клиента (оффтопик: но судя по вашим инструкциям вы где-то серверы "под ключ" закупали и потому ни разу не настраивали)
3 забавный бред

Страницы: 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677

Предыдущая тема: Что же это за вирус/троян?


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.