Тиграша |
Отправлено: 04.02.2005, 11:59 |
|
Ученик-кочегар
Группа: Участник
Сообщений: 24
|
Хочу передавать много строк длины ~100 символов с машины на машину по низкоскоростному каналу. Поэтому хочется эти строки как-нибудь поджать, причём комп на этом деле будет не сильно крутой.
Мало ли, вдруг кто чего посоветует новичку... |
|
olegenty |
Отправлено: 04.02.2005, 12:05 |
|
Ветеран
Группа: Модератор
Сообщений: 2412
|
жми, но по возможности я бы ещё их в пакеты штук по 100 объединял — иначе сжатие не будет давать серьёзных плюсов (по объёму) зато будут минусы (по быстродействию)
|
|
Тиграша |
Отправлено: 04.02.2005, 12:13 |
|
Ученик-кочегар
Группа: Участник
Сообщений: 24
|
Вот так ответил
Чем жать-то?
А в кучу их валить нельзя — мне каждую строку контролировать придётся, и именно по отдельности.
Просто канал — хуже некуда...
А минусы по быстродействию — это даже лучше. Будет повод тачку под задачу могучую с конторы содрать. Если начальство спросит — я на тебя ссылаться буду |
|
Treumer |
Отправлено: 04.02.2005, 12:20 |
|
Станционный диспетчер
Группа: Участник
Сообщений: 92
|
QUOTE (Тиграша @ 04/02/2005, 13:15) | Вот так ответил
Чем жать-то?
А в кучу их валить нельзя — мне каждую строку контролировать придётся, и именно по отдельности.
Просто канал — хуже некуда...
А минусы по быстродействию — это даже лучше. Будет повод тачку под задачу могучую с конторы содрать. Если начальство спросит — я на тебя ссылаться буду |
На мой взгляд — надо думать над структурой данных как таковой!
Что там у тебя в этих строках ?!
Имена-фамилии-явки ?
Ну так создай таблицу — передай ее раз, а потом шли одну цифру — указатель в таблице.
А коли таблица меняется — сделай доп. команду — удалить/вставить...
вот и все дела... |
|
Тиграша |
Отправлено: 04.02.2005, 12:31 |
|
Ученик-кочегар
Группа: Участник
Сообщений: 24
|
Ну вот!
Я примерно то и делаю.
Вот и получается эта куча строк
И вот ещё на краю сознания какая мысль есть:
Слухом земля полнится, что Интербася хранил blob и varchar в архивированном виде. А можно ли на нулевой машине получить их исходное представление, и при получении на другой машине писать их "напрямую"?
Хотя ставить ради этого FB...
Отредактировано Тиграша — 04/02/2005, 13:43 |
|
olegenty |
Отправлено: 04.02.2005, 12:52 |
|
Ветеран
Группа: Модератор
Сообщений: 2412
|
не, в первичном вряд ли получишь.
а если же вообще, то вариант с распределением БД по тачкам... ну как вам сказать... дешевле сеть кинуть, чем сопровождать такого монстра. сколько всего клиентов? даже если порядка 10, и то, на каждом иметь по БД, реплицировать всё это как-то... грустно...
|
|
Тиграша |
Отправлено: 04.02.2005, 13:03 |
|
Ученик-кочегар
Группа: Участник
Сообщений: 24
|
Расстояния нетривиальные.
~сотни км.
А на орбиту не пускают |
|
Treumer |
Отправлено: 04.02.2005, 13:06 |
|
Станционный диспетчер
Группа: Участник
Сообщений: 92
|
QUOTE (olegenty @ 04/02/2005, 13:54) | не, в первичном вряд ли получишь.
а если же вообще, то вариант с распределением БД по тачкам... ну как вам сказать... дешевле сеть кинуть, чем сопровождать такого монстра. сколько всего клиентов? даже если порядка 10, и то, на каждом иметь по БД, реплицировать всё это как-то... грустно... |
Плохая связь при необходимости передачи больших объемов информации — это всегда грустно. По определению...
И лечится либо уменьшением траффика, либо улучшением связи...
Только вот сомнения меня берет, что есть способы эффективно сжать строки длиной в 100 байт, если там хотя бы 30-40 различных символов встречаются..
Опят же — ну сожмешь 100 байт в 50..
Сильно что-то изменится ?!
Очень сомневаюсь... |
|
Тиграша |
Отправлено: 04.02.2005, 13:15 |
|
Ученик-кочегар
Группа: Участник
Сообщений: 24
|
"Опят же — ну сожмешь 100 байт в 50.." — вот вот! И скорость повышу в 2 раза
А что, всё-таки есть такой способ хранения строк в IB? Значит в принципе есть подобный алгоритм архивирования таких объектов?
|
|
Treumer |
Отправлено: 04.02.2005, 13:26 |
|
Станционный диспетчер
Группа: Участник
Сообщений: 92
|
QUOTE (Тиграша @ 04/02/2005, 14:17) | "Опят же — ну сожмешь 100 байт в 50.." — вот вот! И скорость повышу в 2 раза
А что, всё-таки есть такой способ хранения строк в IB? Значит в принципе есть подобный алгоритм архивирования таких объектов? |
Мне кажется ползти вместо 1 км/час целых 2 км/час вряд ли поможет черепахи уйти от хищника который выдает 10 км час
То, что в БД что-то архивируется не говори о том, что там арзивируются строки в 100 байт! Там ведь и 10 кб данныз может быть.
Мжет архивирование только для данных длиной больше определенно (например 1 кб) приминяются ?!
Ну что за данные то хоть ?
Бинарные ? Текстовые ?
Может возможно таки создать словарик последовательностей так 100-200.
А потом кодировать из 1-2 байтами..
Тут фактически надо свое архивирование — специфическое — придумывать, стандартные методы явно не помогут!
Ну или так: ксли, к примеру, в посылке могут быть только данные от 0 до 127 — уже можно 1 бит съэкономить на 1 байте... Т.е. около 12.5 процентов...
Ну и т.п. |
|
AVC |
Отправлено: 04.02.2005, 13:35 |
|
Ветеран
Группа: Модератор
Сообщений: 1583
|
Можно вставить свои 5коп?
На строках длиной до 100 байт серьезного улучшения не даст ни один метод.
Чудес не бывает. Сжатие происходит либо за счет потери информации (jpeg), либо за счет исользования внутренних закономерностей сообщения (сжатие текстов). Без анализа ваших сообщений посоветовать спооб затруднительно. Скорее всего придется писать что то своё.
PS
QUOTE |
А минусы по быстродействию — это даже лучше. Будет повод тачку под задачу могучую с конторы содрать
|
Начинать можно прямо сейчас. Без сжатия.
Немного опоздал с отправкой, но это ведь ничего?
Отредактировано AVC — 04/02/2005, 13:38 |
|
Тиграша |
Отправлено: 04.02.2005, 13:37 |
|
Ученик-кочегар
Группа: Участник
Сообщений: 24
|
Спасибо all, пошёл придумывать своё...
Будут у all мысли — пишите, а? |
|
Treumer |
Отправлено: 04.02.2005, 13:42 |
|
Станционный диспетчер
Группа: Участник
Сообщений: 92
|
QUOTE (Тиграша @ 04/02/2005, 14:39) | Спасибо all, пошёл придумывать своё...
Будут у all мысли — пишите, а? |
Да я бы написал мысли, только ты так и не написал что там у тебя за данные:
встречаются ли устойчивые последовательности (типа "слова"), какой набор "символов" используется...
Есть ли зарезервированные символы протокола ? Типа символ "СТАРТ"/ символ "СТОП" и т.п. |
|
Тиграша |
Отправлено: 04.02.2005, 13:52 |
|
Ученик-кочегар
Группа: Участник
Сообщений: 24
|
А это уже сделано — про командные последовательности, в смысле.
Я пока тренируюсь на наборах строк, полученных пропусканием через UUdecode\encode архивов с вариациями длин строк с моей дисперсией и матожиданием. Подобные строки очинно напоминают мои тестовые .
Так что в смысле оптимизации исходных строк — тут мне ловить видимо нечего... |
|
Treumer |
Отправлено: 04.02.2005, 14:03 |
|
Станционный диспетчер
Группа: Участник
Сообщений: 92
|
QUOTE (Тиграша @ 04/02/2005, 14:54) | А это уже сделано — про командные последовательности, в смысле.
Я пока тренируюсь на наборах строк, полученных пропусканием через UUdecode\encode архивов с вариациями длин строк с моей дисперсией и матожиданием. Подобные строки очинно напоминают мои тестовые .
Так что в смысле оптимизации исходных строк — тут мне ловить видимо нечего... |
Ну, тогда остается купить модем покруче ZyXEL — к примеру — и уповать, что он сможет чего-то добиться чего-то в деле повышения скорости передачи данных... |
|
Konstantine |
Отправлено: 04.02.2005, 17:24 |
|
Мастер участка
Группа: Модератор
Сообщений: 545
|
а передача идёт по одной строке или пачками???
если пачками, то можно консольно выполнять архиватор (напр. ZIP или RAR) и передавать пакованый файл... + ко всему (если данные ценные) его можно ключиком закрывать... символов на 20 и т.д.
|
|
Тиграша |
Отправлено: 09.02.2005, 13:22 |
|
Ученик-кочегар
Группа: Участник
Сообщений: 24
|
Передаю по одной строке, ни в коем случае не конгломератом.
То есть по сути паковать надо именно строку, а не файло, и именно в памяти.
А нет таких компонент, которые это бы реализовывали? Уж больно у меня своё тяжёлое получается...
2Treumer — канал хитрый. Не медь |
|
Konstantine |
Отправлено: 09.02.2005, 15:33 |
|
Мастер участка
Группа: Модератор
Сообщений: 545
|
если можешь — напиши хоть несколько этих самых строк.... или расскажи как они получаются... просто если там символы АБСОЛЮТНО случайны, то ты ни байта не сможешь сжать
|
|
Treumer |
Отправлено: 10.02.2005, 16:33 |
|
Станционный диспетчер
Группа: Участник
Сообщений: 92
|
QUOTE (Тиграша @ 09/02/2005, 14:24) | Передаю по одной строке, ни в коем случае не конгломератом.
То есть по сути паковать надо именно строку, а не файло, и именно в памяти.
А нет таких компонент, которые это бы реализовывали? Уж больно у меня своё тяжёлое получается...
2Treumer — канал хитрый. Не медь |
Канал хитрый, данные хитрые..
Что тут остается делать ?!
Только пойти пить пиво |
|