crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

> Теория, как сократить объём трафика по сети, Что-то вроде дельта кодирования..
512es
  опции профиля:
сообщение 17.1.2012, 18:28
Сообщение #1


Участник
**

Группа: Участник
Сообщений: 135
Регистрация: 31.10.2008
Пользователь №: 407

Спасибо сказали: 5 раз(а)




Репутация:   0  


Доброго времени суток!

Упрошённая схема:
Имеется 2 компьютера, клиент и сервер.
Клиент достаточно часто запрашивает одни и те же данные (QByteArray) у сервера.
Объём данных будем считать относительно большим.
Иногда данные могут незначительно меняться.

Задача:
Максимально сократить объём трафика между клиентом и сервером.

Возможно запоминание последних отданных данных клиенту на стороне сервера и последних принятых данных клиентом на стороне клиента.

Сейчас используется qCompress. Заметный выигрыш в размере пакетов, но всё равно, теоретически, можно посылать только различия между новым и предыдущим QByteArray + хеш, указывающий на то, какие данные были использованы при сравнении (на всякий случай, для коррекции ошибок).

Смотрю в сторону Delta кодирования. Но помоему это немного не то, или я просто не умею его использовать. Как его адаптировать для сравнения двух массивов данных?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
 
Начать новую тему
Ответов
512es
  опции профиля:
сообщение 17.1.2012, 22:56
Сообщение #2


Участник
**

Группа: Участник
Сообщений: 135
Регистрация: 31.10.2008
Пользователь №: 407

Спасибо сказали: 5 раз(а)




Репутация:   0  


Тыкс.. Отвечаю сам себе.

В задуманном мною аглоритме есть один огромный недостаток. Если к одному из сравниваемых массивов добавить в середину (а ещё лучше в начало) хоть один байт, то при проверке данные съедут и получим практически несжимаемый файл.

Однако есть всётаки умные люди которые уже всё придумали до нас!
http://www.daemonology.net/bsdiff/ тут даже докторскую диссертацию можно почитать на эту тему!

И именно bsdiff использовался системой обновления Google Chrome, пока они не придумали свой алгоритм. Но новый гугловский алгоритм только для выполняемых файлов, т.к. дизасемблирует код а потом заново ассемблирует.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Iron Bug
  опции профиля:
сообщение 17.1.2012, 23:32
Сообщение #3


Профессионал
*****

Группа: Модератор
Сообщений: 1611
Регистрация: 6.2.2009
Из: Yekaterinburg
Пользователь №: 533

Спасибо сказали: 219 раз(а)




Репутация:   12  


Цитата(512es @ 18.1.2012, 1:56) *
Но новый гугловский алгоритм только для выполняемых файлов, т.к. дизасемблирует код а потом заново ассемблирует.

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

Сообщение отредактировал Iron Bug - 17.1.2012, 23:33
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Сообщений в этой теме
- 512es   Теория, как сократить объём трафика по сети   17.1.2012, 18:28
- - 512es   Ковыряю пример с википедии по дельта-кодированию. ...   17.1.2012, 20:49
- - BRE   Вот это почитай: http://ru.wikipedia.org/wiki/Цело...   17.1.2012, 21:25
- - 512es   Эм, спс, почитал... Правда всё равно не понял как...   17.1.2012, 22:09
- - 512es   Тыкс.. Отвечаю сам себе. В задуманном мною аглори...   17.1.2012, 22:56
|- - Iron Bug   Цитата(512es @ 18.1.2012, 1:56) Но новый ...   17.1.2012, 23:32
- - 512es   Iron Bug, Но сделали же! А вообще, по теме: ...   17.1.2012, 23:54
|- - Iron Bug   Цитата(512es @ 18.1.2012, 2:54) Iron Bug,...   18.1.2012, 17:54
- - Алексей1153   незначительное изменение данных влияет на размер д...   18.1.2012, 7:32
- - 512es   Размер динамический. Вообщем утилита bsdiff просто...   18.1.2012, 17:37
- - Алексей1153   Iron Bug, и в GIF похоже делается. 512es, алгорит...   19.1.2012, 6:40
|- - Iron Bug   Цитата(Алексей1153 @ 19.1.2012, 9:40) При...   23.1.2012, 23:29
- - zloiia   Быть может немного не в тему, но может не стоит из...   19.1.2012, 7:04
- - Алексей1153   zloiia, всё зависит от критичности времени обработ...   19.1.2012, 7:33
- - 512es   Алексей1153, скорость да, уступает простому вычита...   20.1.2012, 11:13
- - Алексей1153   Цитата(512es @ 20.1.2012, 14:13) когда ок...   20.1.2012, 13:01
- - 512es   Алексей1153, кстати, а что вас заставило изобретат...   23.1.2012, 19:48
- - Алексей1153   512es, задача была - написать систему удалённого а...   23.1.2012, 19:58
- - Алексей1153   Цитата(Iron Bug @ 24.1.2012, 2:29) никако...   24.1.2012, 21:05
- - Iron Bug   Цитата(Алексей1153 @ 25.1.2012, 0:05) не ...   25.1.2012, 6:39
- - lanz   http://fabiensanglard.net/quake3/network.php Вооб...   20.2.2013, 16:59


Ответить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 1.12.2024, 4:11