О том, что выполняется сжатие файла перед отправкой указывает вот эта буковка "Z" как видно из рисунка, мой клиент усиленно старается пожать mp3 (при этом на принимающей стороне клиент должен еще выполнить декомпрессию)
Изменения в коде выглядят так и в случае успешного тестирования они войдут во все ветки наших клиентов
Текущий алгоритм:
- Список расширений файлов, для передачи которых не будет использоваться сжатие через ZLib находится в конфигурационном файле CustomCompressExt.ini
- Файл загружается один раз при старте клиента.
Если пользователь пытается с вас скачать файл попадающий под CustomCompressExt.ini, то при отдачи файла не используется zlib фильтр (сжимать уже пожатые файлы не эффективно)
Просьба к пользователям посмотреть файл и дополнить его расширениями которые являются сжатыми, но не описаны
писать можно прямо в блог.
В формате:
.расширение [описание]
r500-beta12 с поддержкой данной функции:
SetupFlylinkDC-x86-r500-beta12-build-4602.exe
SetupFlylinkDC-x64-r500-beta12-build-4602.exe
FlylinkDC-x64-r500-vc2010-beta12-build-4602-29-Aug-2010-23-04.zip
FlylinkDC-src-r500-vc2010-beta12-build-4602-29-Aug-2010-22-50.zip
FlylinkDC-x86-r500-vc2010-beta12-build-4602-29-Aug-2010-22-49.zip
r401-beta1
SetupFlylinkDC-x86-r401-beta1-build-4604.exe
SetupFlylinkDC-x64-r401-beta1-build-4604.exe
FlylinkDC-r401-beta1-build-4604-30-Aug-2010-00-05.zip
FlylinkDC-r401-src-beta1-build-4604-30-Aug-2010-00-06.zip
FlylinkDC-r401-beta1-x64-build-4604-30-Aug-2010-00-18.zip
51 комментарий:
Применение LZMA2 не снизит нагрузку, зато сожмет файл на 30% сильнее. Для сравнения объём файлов 650 мегабайт сжимается
LZMA2 в 350 мегабайт за 46 секунда
ZIP в 430 мегабайт за 34 секунды
LZMA2 не входит в стандарт, но можно реализовать его опционально в флайлинке для обмена между флайлинками. Пользователям на DSL этоб очень пригодилось.
http://www.thg.ru/software/archivator_test/archivator_test-02.html
В данной теме речь идет об исключении двойного сжатия.
650м - какого типа файлы?
По сети чаще всего гоняют avi да mp3
зачем их жать(не важно каким методом)?
.tar в этом списке лишний - это несжатый архив.
А вот упомянутого .mp3 явно не хватает, как и прочих звуковых форматов - .ogg, .flac, .ape.
Спасибо.
убрал тар
добавил
// Звуковые файлы
.mp3
.flac
.ogg
.ape
.vqf
.lqt
хотя про ape первый раз слышу
насколько я понял - аудио и видео сжимать не надо...
советую аудио форматы подсмотреть в AIMP'е - список наиболее чем полный
Глянул AIMP2 много...
а какие из списка не сжатые?
Например WAV если не ошибаюсь, без сжатия
Например WAV если не ошибаюсь, без сжатия
WAV - это RIFF'овский контейнер, данные могут быть как сжатые так и нет. В общем случае можно считать, что в WAV лежат не сжатые PCM данные.
Скорость работы возрасла в разы win 7 64 bit пока работает стабильно
А вот ссылку с тестом кинули: http://www.thg.ru/software/archivator_test/archivator_test-02.html
Конешно больше всего передают видео и mp3, тогда стоит ли вообще заморачиваться? Я думаю что около 90% передаваемых файлов несжимаемые. 650 - скорее всего набрали папку из разных популярных файлов, чтобы тест был усреденным, т.к. один архиватор сжимает хорошо одни файлы, другой - другие.
Прикрутить дополнительно lzma - сложная задача? я думал в худьшем случае это не больше часика времени на отладку займет. Зато те, у кого инет лимитирован - будут оооочень благодарны.
--------------------------
Не по теме:
Вот тут интересные вещи пишут, думаю вам будет интересно почитать: http://dchublist.ru/forum/viewtopic.php?f=6&t=429&sid=83c15d43863040856b20b1160c104062&start=50
Может лучше по-умолчанию считать файлы сжатыми, а в список исключений добавлять расширения несжатых?
слишком большой фильтр получится
Фильтр грузится один раз в хэш таблицу unordered_set
а поиск по ней идет быстро.
Если Вас это беспокоит...
Думаю стоит добавить образы дисков ISO и т.д. Обычно в образах уже сжатые файлы.
Добавьте видео расширения .mpeg, .divx
Нагрузка на ЦП действительно упала, спасибо.
iso - несжатый образ;
isz - сжатый образ (zip'ом).
Добавлено.
http://code.google.com/p/flylinkdc/source/detail?r=4610
ISZ - образ ISO сжатый ZIP'ом
Так вот что такое буковка Z ;)
Кстати что такое [C] и ещё какая-то бывает?
Практически уверен, что список файлов можно было делать внутренним, неизменяемым пользователем. И пополнять его в новых версиях, а пользователю предоставить на выбор:
галочка - исключить лишнее сжатие файлов.
Вообще имхо, в DC сжатие не сильно нужно, кроме как файллист, и жать больше нечего. Много ли объёмного контента летает, который можно пожать? На LZMA не стоит тратить время.
хм. Файл лист передается уже пожатым. (bzip)
Что означают символы [Z] [T] [C], которые стоят в полосе загрузки в столбце Статус?
[T] = TTH check on - идет передача с использованием TTH (проверка TTH включена).
[Z] = zlib on - используется сжатие zlib (метод вроде GZIP).
[R] = rollback performed - скачка с использованием отката (в настройках "Для экспертов" соответсвующий пункт). Про него можно почитать в справке к оригинальному DC++.
[S] = secure transfer - безопасная передача.
[C] = state chunked transfers - передача по запросу куска файла, а не целого.
[P] - partial, т.е. когда с тебя качают файл, который ты качаешь с другого (в предыдущих версиях это называлось "расшаривание скачиваемых файлов").
p.s.
буковка S в ветке r4xx не поддерживается в ней OpenSSL вырезан.
Спасибо буду знать.
[R] - что-то не нашёл =0 в настройках.
Видео
.3gp Мультимедийный файл беспроводных сетей
.avi Контейнер для видео/аудио потока данных
.divx Movie Encoded with DivX-codec
.flv Flash видео файл
.m4v Видео в формате MPEG-4
.mkv Аудио-видео файл Matroska, контейнер
.mov Видео файл Apple QuickTime
.mp4 Файл видео MPEG-4
.mpg MPEG movie file
.mpeg MPEG movie file
.vob DVD-Video Object
.wmv Видео файл Windows Media
Аудио
.aac Advsnced Audio Codec
.ac3 Dolby Digital AC-3
.ape Monkey's Audio
.fla Free Lossless Audio
.flac Free Lossless Audio
.m4a Apple Lossless Audio Codec
.mp1 MPEG Layer 1
.mp2 MPEG Layer 2
.mp3 MPEG Layer 3
.ogg Ogg Vorbis Audio
.wma Windows Media Audio
.wv WavPack
Архивы
.cab Windows Cabinet Compressed Archive
Спасибо. добавил
http://code.google.com/p/flylinkdc/source/detail?r=4615
http://ru.wikipedia.org/wiki/Сжатие_без_потерь#.D0.A1.D0.B6.D0.B0.D1.82.D0.B8.D0.B5_.D0.B0.D1.83.D0.B4.D0.B8.D0.BE
извиняюсь, корявая ссылка
wiki
.djvu DjVu Document
.djv DjVu Document
.tiff Tagged Image File Format
.tif Tagged Image File Format
.bik Видео в формате Bink
.mka Аудио файл Matroska
.qt Видео файл Apple QuickTime
.rm Видео файл RealMedia
И не забудьте про образы дисков и сжатые изображения
здесь точнее - смотрим на программу и в какой формат сжимает, и решаем добавлять или нет :)
Кстати википедия это идея.
Вот нашёл http://en.wikipedia.org/wiki/Template:Compression_formats
Отключите сжатие неполных источников. У меня недокачанный фильм в формате .avi раздаётся и сжатие включено.
Учитывая что 90% файлов жать не получиться я бы инвертнул список, т.е. по умолчанию файлы не жать, а жать только те что в списке .txt, .xml.
В идеале лучше отказаться от файла конфигурации и проверять файл на жмёться, не жмётся, вообще алгоритмы такие есть?
вообще алгоритмы такие есть?
Да, есть, нужно его сжать и посмотреть, сжался ли он!
вообще алгоритмы такие есть?
Ну, теоретически можно распределение символов в файле посмотреть, чем более оно равномерное, тем меньше пожмется файл. Но это в первом приближении, тут более совершенный математический аппарат нужен.
Опять же кто будет составлять статистику и на каких файлах? ;)
Учитывая что 90% файлов жать не получиться
Статистику предоставьте, пожалуйста
я бы инвертнул список, т.е. по умолчанию файлы не жать, а жать только те что в списке .txt, .xml
А я бы не стал этого делать, потому как только у одних текстовых файлов тонна расширений: txt, ini, ion, cpp, и т.д. и т.п. В общем случае любой файл с неизвестным расширением имеет неплохой шанс сильно сжаться.
Насчет того, что эти файли, мол, никто не передает по p2p, опять же - дайте статистику. С видеофайлами, например часто качают субтитры, с mp3 - в каталогах альбомов часто лежит текстовая инфа и т.п.
Ну и дистрибутивы программ, если они идут не одним самораспаковывающимся архивом часто можно пожать, сэкономив мегабайт-другой
Ну и дистрибутивы программ, если они идут не одним самораспаковывающимся архивом часто можно пожать, сэкономив мегабайт-другой
гигабайт-другой :) К примеру распакованный монстр вроде Adobe CS5 весит раза в 3-4 больше во время инсталляции чем сам инсталлятор, тоже самое касается всяких dll, sys, и других исполняемых файлов, они прекрасно жмутся в несколько раз, особенно если они содержат много ресурсов, exe-шка Флая например жмётся где то до размера 1.5 МБ, т.е. в 2-3 раза
К примеру распакованный монстр вроде Adobe CS5 весит раза в 3-4 больше во время инсталляции чем сам инсталлятор, тоже самое касается всяких dll, sys
Ну это понятно, но распакованные программы как правило не гоняют по p2p. Я имел ввиду именно распространяемые дистрибутивы, которые часто состоят из одного или нескольких архивов и нескольких сопутствующих файлов. А последние как раз можно пожать.
Это к разговору о том, что, мол, 90% файлов и так сжатыми передаются.
no-steam игры в .bin расфасовывают, сжимается нехило
На лимитированных тарифах провайдеры считают каждый мегабайт.
Нужно смотреть насколько загружен процессор. Если общая нагрузка ниже 20% - то жать абсолютно все файлы по максимуму алгоритмом lzma2
Если нагрузка в пределах от 20 до 30 к примеру, жать все файлы злибом. Если выше - жать злибом только разрешенные в списке файлы.
А тык вы сейчас выиграете в производительности и толку? Освобожденное время процессор попросту будет простаивать.
ИМХО если начали разрабатывать эту тему - нужно разработать её основательно и навсегда.
* Обновил список расширений.
http://code.google.com/p/flylinkdc/source/detail?r=4625#
"На лимитированных тарифах провайдеры считают каждый мегабайт."
а у вас разве локальный траф не бесплатный?
как называется город?
Павел, флаем пользуется много пользователей. У всех интернет разный. В крупных городах с ним проблем нет, а вот в деревнях и облостях вообще до сих пор у многих провайдеров сохранились лимитированные тарифы. Также набирает обороты мобильный интернет, у которого большинство тарифов - лимитированные. И многие едут на дачу с ноутбуком и качают там. Между 430 и 350 большая разница и если даже считать 1 мегабайт - рубль, а это далеко не везде, при таком раскладе пользователь сэкономит 80 рублей и может быть целый час времени.
А представьте если кто-то решил устроить раздачу? на магнет порталах их делают всё время! И с одного релизера сразу качает несколько десятков человек, а у него инет 10 мегабит. При таком раскладе 30% - получится большое число, как в трафике, так и во времени. А нагрузкой релизеры готовы пожертвовать, лишь бы файл раздался и разошелся быстрее при меньшем трафике. Никому не хочется держать комп ночью включенным только ради этого.
А представьте если кто-то решил устроить раздачу? на магнет порталах их делают всё время! И с одного релизера сразу качает несколько десятков человек, а у него инет 10 мегабит. При таком раскладе 30% - получится большое число, как в трафике, так и во времени
уточните: раздачу чего, офисных документов? так *.docx *.xlsx уже пожаты. расскажите нам, чего у вас такого раздают массово востребованного и непожатого?
расскажите нам, чего у вас такого раздают массово востребованного и непожатого?
Часто раздаются ISO - это непожатый формат. Даже если внутри лежат сжатые файлы, то сам ISO можно неплохо сжать
уточните: раздачу чего, офисных документов? так *.docx *.xlsx уже пожаты. расскажите нам, чего у вас такого раздают массово востребованного и непожатого?
Да даже если и офисных документов, чего в этом такого?! Пускай будет и zlib и lzma2, а пользователи уж сами решат что и как им.
Недавно мафию радавали, весит она 6,17 гб
Еслиб флай жал её через lzma - пришлось бы каждому раздать 3,3 гб
При zlib, у тех, кто выставил в настройках девятку - раздавалось 4 гб
Недавно мафию радавали, весит она 6,17 гб
Еслиб флай жал её через lzma - пришлось бы каждому раздать 3,3 гб
вы не правы. у меня есть оба этих образа. первый такой большой не потому что плохо сжат, а потому что там есть ресурсы для всех языков, не только для русского и английского
Доброго времени суток!
Добавьте плиз расширения .deb, .rpm - пакеты в linux и их сжимать нетребуется.
Еще в лосслесс музыка, хоть и не часто, как .flac, .wv и .ape, но встречается в форматах .tak .tta .wma (тоже встречается лосслесс), .mlp, .shn.
Образы iso тоже считаю, что сжимать нельзя, т.к. внутри уже сжатые файлы находятся, хотя и не всегда, иногда исошки неплохо жмутся. Но в .iso также распространяются дистры на основе ядра GNU/Linux и их дополнительно жать толку никакого нет.
LZMA-компрессию неплохо тоже добавить, но по-умолчанию, выставить GZIP, а кому надо - покопается в настройках.
deb и rpm в файле есть
Думаю после флая LZMA2 подхватят и другие клиенты, алгоритм действительно хорош
еще можно добавить контейнеры .TS и .m2ts
это от bluray дисков
Отправить комментарий