Re[3]: Ищу простой быстрый алгоритм сжатия на С (не ++)
От: CreatorCray  
Дата: 03.01.11 23:14
Оценка:
Здравствуйте, Kerbadun, Вы писали:

K>>http://www.oberhumer.com/opensource/lzo/


K>Если не ошибаюсь, на современных компьютерах оно работает быстрее, чем memcpy.

Несколько сомнительно.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Re[4]: Ищу простой быстрый алгоритм сжатия на С (не ++)
От: Kerbadun  
Дата: 03.01.11 23:48
Оценка:
K>>>http://www.oberhumer.com/opensource/lzo/
K>>Если не ошибаюсь, на современных компьютерах оно работает быстрее, чем memcpy.
CC>Несколько сомнительно.

Не уверен на 100% насчет именно этого алгоритма, но данные были получены экспериментально и довольно легко объяснимы: общее количество памяти, которое нужно прочитать/записать у memcpy больше, а процессор работает очень быстро и не вносит большого вклада, то есть все упирается в скорость памяти. Закономерно получается быстрее.

Я конечно, тоже сначала офигел, когда увидел цифры ("Э-э, погодите, memcpy медленнее?! Но оно же просто копирует!").

Когда он умрет, его мозг заспиртуют в стакане
Re[5]: Ищу простой быстрый алгоритм сжатия на С (не ++)
От: CreatorCray  
Дата: 03.01.11 23:59
Оценка:
Здравствуйте, Kerbadun, Вы писали:

K>>>>http://www.oberhumer.com/opensource/lzo/

K>>>Если не ошибаюсь, на современных компьютерах оно работает быстрее, чем memcpy.
CC>>Несколько сомнительно.

K>Не уверен на 100% насчет именно этого алгоритма, но данные были получены экспериментально и довольно легко объяснимы: общее количество памяти, которое нужно прочитать/записать у memcpy больше

Считать как минимум столько же.
Записать да, меньше.
Но обработка она всё равно не настолько бесплатная.

K>Я конечно, тоже сначала офигел, когда увидел цифры ("Э-э, погодите, memcpy медленнее?! Но оно же просто копирует!").

У них на сайте:

Here are some original timings done on an Intel Pentium 133. Multiply by a constant factor for modern machines.

* memcpy(): ~60 MB/sec
* LZO1X decompression in C: ~16 MB/sec
* LZO1X decompression in optimized assembler: ~20 MB/sec
* LZO1X-1 compression: ~5 MB/sec

Таблица с результатами в их же документации тоже особо не блещет.

Где можно скачать сурсы теста, на котором можно убедиться в тотальном разрывании memcpy на немецкий крест?
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Re[5]: Ищу простой быстрый алгоритм сжатия на С (не ++)
От: CreatorCray  
Дата: 04.01.11 00:13
Оценка:
Здравствуйте, Kerbadun, Вы писали:

K>>>>http://www.oberhumer.com/opensource/lzo/

K>>>Если не ошибаюсь, на современных компьютерах оно работает быстрее, чем memcpy.
CC>>Несколько сомнительно.

K>Не уверен на 100% насчет именно этого алгоритма, но данные были получены экспериментально и довольно легко объяснимы: общее количество памяти, которое нужно прочитать/записать у memcpy больше, а процессор работает очень быстро и не вносит большого вклада, то есть все упирается в скорость памяти. Закономерно получается быстрее.


Вики про него говорит:

On modern architectures, decompression is very fast; in non-trivial cases able to exceed the speed of a straight memory-to-memory copy due to the reduced memory-reads.


Насчёт существенного буста скорости на минимизации чтения для non-trivial cases для LZ несколько сомнительно.
Похоже больше на то, что сжатый текст весь сидит в кэше, cache miss при распаковке не происходит и потому доставание из словаря дёшево на чтении.
Надо тест.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Re: Ищу простой быстрый алгоритм сжатия на С (не ++)
От: Аноним  
Дата: 04.01.11 19:40
Оценка:
Здравствуйте, _RL_, Вы писали:

Вообще от алгоритм от данных зависит, есть например http://drobotenko.com/compres.html для аудио
Re[3]: Ищу простой быстрый алгоритм сжатия на С (не ++)
От: c-smile Канада http://terrainformatica.com
Дата: 04.01.11 20:06
Оценка:
Здравствуйте, TimurSPB, Вы писали:

CS>>http://rsdn.ru/forum/cpp.applied/962907.1.aspx
Автор: c-smile
Дата: 24.12.04

TSP>Какая реализация! Столько указателей и magic numbers. Чую уязвимости есть.

Зато "An Extremely Fast Data Compression Algorithm"
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.