Форум программистов, компьютерный форум, киберфорум
Бета-тестирование
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.52/29: Рейтинг темы: голосов - 29, средняя оценка - 4.52
Труд вопреки насмешкам
 Аватар для Etyuhibosecyu
363 / 181 / 41
Регистрация: 13.07.2017
Сообщений: 4,829
Записей в блоге: 14

Ares Preview 2.0 (Pre-Alpha)

28.06.2020, 21:51. Показов 8205. Ответов 141
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
И еще одна программа выходит снова после большого перерыва! Хотя в этот раз перерыв все же не два года, а только год и 3 или 4 месяца. Встречайте - полностью переработанный FileCompressor под кодовым названием Ares Preview 2.0 (в приложенном архиве). Я начал сразу с номера 2.0, так как это, по сути, продолжение существующей программы. Теперь добавились новые методы сжатия, включая мои авторские модификации - "для слов" и SHET, которые сжимают Властелина Колец всего на 19% слабее 7z! Причем другие архиваторы уже не сжимают файлы, сжатые Ares, в отличие от старых, что является аргументом в пользу правдивости этого размера. Также появилась возможность гибко управлять применяемыми инструментами с помощью специальных флажков и переключателя PSB/ARIC. К сожалению, пока нельзя отключить Лемпель-Зив, или наоборот, отключить все, кроме него, но если я не брошу программу, то это будет исправлено. Розовым выделены инструменты, распаковка которых вылетает. Также теперь ни один файл не будет сжиматься два часа (представьте себе!). Если размер файла приемлемый для Ares (например, Властелин Колец - 4 МБ), он сожмет быстро, если неприемлемый (например, 650 МБ) - сдастся сразу. Тесты показали, что на среднем компьютере (я считаю свой компьютер более-менее средним) с базовыми настройками Властелин Колец сжимается 18 секунд (!!!), с экстремальными - 8 минут 11 секунд. Хотя есть одна проблема: почти половину этого времени ни одна полоса загрузки не двигается ни на пиксел, так что создается иллюзия, что программа зависла. Очень надеюсь, что программа улучшилась.
Вложения
Тип файла: rar Ares Preview 2.0.rar (73.6 Кб, 9 просмотров)
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
28.06.2020, 21:51
Ответы с готовыми решениями:

Pre-alpha Season Unreal Tournament
Качаю последнюю версию, которая уже в разработке, потому что 3 для меня не актуальна - накувыркался с ботами с тройки достаточно, в онлайне...

Hash Function Efficiency v0.1 pre-Alpha (May 11th, 2017)
Вот код, для наглядности (cyberforum.ru - не сохраняет оригинал кода! может не компилироваться) комментарии не удалял... #include...

Возможно ли будет обновиться с Consumer Preview до Alpha, Beta, RC и Final?
Возможно ли будет обновиться с Consumer Preview без переустановки (через интернет) до Alpha, Beta, RC и Final? Добавлено через 7 минут...

141
Всегда онлайн
 Аватар для MrOnlineCoder
1084 / 788 / 295
Регистрация: 07.04.2013
Сообщений: 2,703
29.06.2020, 14:32
Студворк — интернет-сервис помощи студентам
Etyuhibosecyu, скачал третий билд. Текстовый файл на 1 мб сжал, но распаковать не удалось, программа вылетела.

И кстати, чем отличается кнопка Открыть от Открыть для сжатия?
0
Неэпический
 Аватар для Croessmah
18149 / 10731 / 2067
Регистрация: 27.09.2012
Сообщений: 27,038
Записей в блоге: 1
29.06.2020, 14:34
Цитата Сообщение от MrOnlineCoder Посмотреть сообщение
И кстати, чем отличается кнопка Открыть от Открыть для сжатия?
Ну что непонятного? Первая открывает, вторая открывает для сжатия.
1
Всегда онлайн
 Аватар для MrOnlineCoder
1084 / 788 / 295
Регистрация: 07.04.2013
Сообщений: 2,703
29.06.2020, 14:35
Цитата Сообщение от Croessmah Посмотреть сообщение
И даже не падает
Да, только когда попробовал распаковать сам ехешник архиватора в той же папке, получил ошибку, так как он не смог наверно открыть файл для записи когда работает сама программа. Но зато "не упал"!
0
Труд вопреки насмешкам
 Аватар для Etyuhibosecyu
363 / 181 / 41
Регистрация: 13.07.2017
Сообщений: 4,829
Записей в блоге: 14
29.06.2020, 14:35  [ТС]
Цитата Сообщение от MrOnlineCoder Посмотреть сообщение
Текстовый файл на 1 мб сжал, но распаковать не удалось, программа вылетела.
С розовыми флажками распаковать никогда не удастся. Без розовых - Властелина Колец распаковывает, на одних нулях не тестировал.
Цитата Сообщение от MrOnlineCoder Посмотреть сообщение
И кстати, чем отличается кнопка Открыть от Открыть для сжатия?
Кнопка Открыть открывает для распаковки во временную папку и нижеследующего открытия.
0
Всегда онлайн
 Аватар для MrOnlineCoder
1084 / 788 / 295
Регистрация: 07.04.2013
Сообщений: 2,703
29.06.2020, 14:36
Цитата Сообщение от Etyuhibosecyu Посмотреть сообщение
С розовыми флажками распаковать никогда не удастся.
тогда какой в них смысл? и я не могу это протестировать, некоторые флажки снять нельзя
0
Труд вопреки насмешкам
 Аватар для Etyuhibosecyu
363 / 181 / 41
Регистрация: 13.07.2017
Сообщений: 4,829
Записей в блоге: 14
29.06.2020, 14:39  [ТС]
И, к слову.
Цитата Сообщение от Etyuhibosecyu Посмотреть сообщение
Не лучше, но 119 КБ против 107 - не намного и хуже.
Поставил все флажки + ARIC - 102 КБ, так что Ares все же способен сжать лучше архиватора от locm.
0
Всегда онлайн
 Аватар для MrOnlineCoder
1084 / 788 / 295
Регистрация: 07.04.2013
Сообщений: 2,703
29.06.2020, 14:43
Etyuhibosecyu, попробовал снять флажки, оставив только C-S1, HF. Удалось сжать пустой файл, файл с 1 словом, файл с большим количеством одинаковых букв и файл с 1 кб текстом "Lorem ipsum". Однако ни один их этих файлов распаковать не удалось. Есть хоть 1 рабочая конфигурация которая справится с этой задачей?
Вложения
Тип файла: zip Tests.zip (2.2 Кб, 2 просмотров)
0
Эксперт по электронике
7143 / 3322 / 342
Регистрация: 28.10.2011
Сообщений: 13,069
Записей в блоге: 7
29.06.2020, 14:43
Цитата Сообщение от MrOnlineCoder Посмотреть сообщение
Надеюсь, алгоритм сам писали а не впихнули библиотеку типа zlib?
По быстрому алгоритм архивации не разработаешь... Использовал BriefLZ.
Заменив одну строку в коде можно использовать другие методы сжатия такие как LZMA (7z), TAR, ZIP и др.
К примеру в архиве с методом LZMA и создает/распаковывает 7z архив.
Вложения
Тип файла: zip Архиватор.zip (160.5 Кб, 9 просмотров)
0
Всегда онлайн
 Аватар для MrOnlineCoder
1084 / 788 / 295
Регистрация: 07.04.2013
Сообщений: 2,703
29.06.2020, 14:45
del
0
Эксперт по электронике
7143 / 3322 / 342
Регистрация: 28.10.2011
Сообщений: 13,069
Записей в блоге: 7
29.06.2020, 22:02
Цитата Сообщение от Etyuhibosecyu Посмотреть сообщение
По двум причинам. Первая - программа проходит по файлу много раз.
Делим файл на куски скажем по 100 МБ и каждый сжимаем по отдельности. Это практически на скажется на размере архива, но позволит снять ограничение на размер файла.

Цитата Сообщение от Etyuhibosecyu Посмотреть сообщение
А если будет граница кусков на середине слова?
Файлы нужно рассматривать как бинарные.

Цитата Сообщение от Etyuhibosecyu Посмотреть сообщение
Вторая - это в некотором смысле является барьером, чтобы программа не могла сжимать сутками.
Чтобы программа быстро сжимала нужно полностью пересмотреть код. Не стоит создавать миллиард объектов там где хватит одного! В вторых - многопоточность. Создайте столько потоков сколько ядер в процессоре и сжимайте в них. Это позволит полностью использовать процессор.

Вероятно для вас один из .NET языков был первым и даже не представляете какие накладные расходы имеет создание множества объектов, сборка мусора, регулярные выражения и др.
Чтобы это понять нужно иметь практику на процедурном низкоуровневом ЯП, без "облегчалок". А еще лучше поработать непосредственно с железом например микроконтроллерами, где ресурсы сильно ограничены (например 16 КБ для кода и 4 КБ оперативной памяти) и нет ни операционной системы, ни API, ни BIOS.

Цитата Сообщение от Etyuhibosecyu Посмотреть сообщение
Это чтобы выделить слова в потоке байт.
А если данные бинарные? А если текстовые, но кодировка неизвестна? А если это смесь текстовых и разных кодировках и бинарных данных?
1
Эксперт .NET
 Аватар для Usaga
14368 / 9469 / 1360
Регистрация: 21.01.2016
Сообщений: 35,734
30.06.2020, 04:51
Цитата Сообщение от locm Посмотреть сообщение
В вторых - многопоточность. Создайте столько потоков сколько ядер в процессоре и сжимайте в них. Это позволит полностью использовать процессор.
С этим у ТСа проблемы. Ему уже предлагали использовать многопоточность, на что он заявил, что эффективность алгоритма сжатия ухудшится потому, что он где-то об этом читал. Но глядя на результаты профилирования я точно могу сказать, что многопоточность ему точно не поможет. Даже хуже станет, с таким-то подходом к делу.
0
 Аватар для Kastaneda
5232 / 3206 / 362
Регистрация: 12.12.2009
Сообщений: 8,143
Записей в блоге: 2
30.06.2020, 07:44
Лезть в многопоточность не понимая как работает то, что ты пишешь - заведомо провальная идея.
В случае ТСа надо начинать с азов, с его уровнем дай ему в руки С++ он бы не то, что себе в ногу выстрелил, а вообще бы вторую Хиросиму устроил в радиусе 100км.
0
Эксперт .NET
 Аватар для Usaga
14368 / 9469 / 1360
Регистрация: 21.01.2016
Сообщений: 35,734
30.06.2020, 08:17
Kastaneda, так он свой "построитель окон" и начинал с плюсов. Там дичь непроглядная была из std::string и std:string::substr. Такая же, в общем, чертавня как и на C# с List<T>. Только ещё с утечками и segmentation fault'ами.

Его надо на голый Си пересадить и держать там до просветления.
0
 Аватар для Kastaneda
5232 / 3206 / 362
Регистрация: 12.12.2009
Сообщений: 8,143
Записей в блоге: 2
30.06.2020, 08:47
Цитата Сообщение от Usaga Посмотреть сообщение
Его надо на голый Си пересадить и держать там до просветления.
Звучит как план, на месте ТСа я бы прислушался.
0
Труд вопреки насмешкам
 Аватар для Etyuhibosecyu
363 / 181 / 41
Регистрация: 13.07.2017
Сообщений: 4,829
Записей в блоге: 14
30.06.2020, 09:25  [ТС]
Цитата Сообщение от locm Посмотреть сообщение
Делим файл на куски скажем по 100 МБ и каждый сжимаем по отдельности. Это практически на скажется на размере архива, но позволит снять ограничение на размер файла.
100 МБ - тоже неприемлемый кусок. Это нужно где-то по 8-16 МБ.
Цитата Сообщение от locm Посмотреть сообщение
Файлы нужно рассматривать как бинарные.
Алгоритм рассчитан в первую очередь на тексты, для других видов будут Ares I, Ares Z и т. д.
Цитата Сообщение от locm Посмотреть сообщение
Чтобы программа быстро сжимала нужно полностью пересмотреть код. Не стоит создавать миллиард объектов там где хватит одного!
Что миллиард, это вы хватили. Всего 13.6 миллионов List<T>. И что хватит одного - тоже неправда. Кроме того, я измерял в отладчике - от ресурсных оптимизаций время меняется на единицы процентов. Память меняется, время - нет (только в пределах естественных флуктуаций). ПРОВЕРЕНО!!! Тут скорее проблема в самом алгоритме.
Цитата Сообщение от locm Посмотреть сообщение
В вторых - многопоточность. Создайте столько потоков сколько ядер в процессоре и сжимайте в них. Это позволит полностью использовать процессор.
А я использую многопоточность, вы не знали? Надо только выставить все флажки, и будет хоть и не столько, сколько ядер в элитном процессоре, но 6 потоков.
Цитата Сообщение от locm Посмотреть сообщение
Вероятно для вас один из .NET языков был первым и даже не представляете какие накладные расходы имеет создание множества объектов, сборка мусора, регулярные выражения и др.
Еще как не первым. Чтобы прийти к нему, я прошел невероятно долгий путь. И проходил его, может быть, 9 лет и сколько-то месяцев (до .NET). Но C# оказался для меня самым удобным в настоящее время, так как C↑ᶜC, C with stations или какой-то подобный язык еще не разработан.
Цитата Сообщение от locm Посмотреть сообщение
А если данные бинарные? А если текстовые, но кодировка неизвестна? А если это смесь текстовых и разных кодировках и бинарных данных?
1 - тогда Хаффман для слов сделает самый обыкновенный return, 2 - производится проверка на три основных кодировки, 3 - так не бывает, если только не создать это искусственно.
Цитата Сообщение от Usaga Посмотреть сообщение
Ему уже предлагали использовать многопоточность, на что он заявил, что эффективность алгоритма сжатия ухудшится потому, что он где-то об этом читал.
Это прошлое. В настоящее время я использую многопоточность.
Цитата Сообщение от Kastaneda Посмотреть сообщение
В случае ТСа надо начинать с азов, с его уровнем дай ему в руки С++ он бы не то, что себе в ногу выстрелил, а вообще бы вторую Хиросиму устроил в радиусе 100км.
Цитата Сообщение от Usaga Посмотреть сообщение
Его надо на голый Си пересадить и держать там до просветления.
Как раз C++, а тем более "голый Си" - это не азы, в значении того, с чего надо начинать. Вот язык под названием "Алгоритм" (когда-то Usaga или Rius его уже находили) - это действительно настоящие азы для детей.

Билд четвертый. Теперь вместо вылета при распаковке программа выдает понятное человеку сообщение. Исправлен еще один квадратичный тормоз. Все файлы, перечисленные в #47, сжимаются и распаковываются.
Вложения
Тип файла: rar Ares Preview 2.0.rar (75.2 Кб, 3 просмотров)
0
Неэпический
 Аватар для Croessmah
18149 / 10731 / 2067
Регистрация: 27.09.2012
Сообщений: 27,038
Записей в блоге: 1
30.06.2020, 09:47
Цитата Сообщение от Etyuhibosecyu Посмотреть сообщение
В настоящее время я использую многопоточность.
И сколько потоков занимаются непосредственно сжатием?
0
Труд вопреки насмешкам
 Аватар для Etyuhibosecyu
363 / 181 / 41
Регистрация: 13.07.2017
Сообщений: 4,829
Записей в блоге: 14
30.06.2020, 10:17  [ТС]
Цитата Сообщение от Croessmah Посмотреть сообщение
И сколько потоков занимаются непосредственно сжатием?
При всех флажках - 5.

Добавлено через 29 минут
Измерил время сжатия Властелина Колец четвертым билдом на экстремальных настройках - 5 минут 4 секунды при загруженном процессоре. Прогресс...
0
Эксперт .NET
 Аватар для Usaga
14368 / 9469 / 1360
Регистрация: 21.01.2016
Сообщений: 35,734
30.06.2020, 10:32
Цитата Сообщение от Etyuhibosecyu Посмотреть сообщение
Как раз C++, а тем более "голый Си" - это не азы, в значении того, с чего надо начинать.
Си - как раз азы. Там нет ничего. И любую фичу, которая вам понадобится, вам придётся написать самому. А чтобы написать её, вам придётся задействовать все ресурсы мозга. После такой закалки, уже можно переходить на что угодно. И после такой закалки, люди не пишут дичь, которая для сжатия 12Мб аллоцирует 2.3Гб.

Цитата Сообщение от Etyuhibosecyu Посмотреть сообщение
При всех флажках - 5.
Больше потоков, чем ядер на среднестатистической машине? Круто, чё.
0
Эксперт по электронике
7143 / 3322 / 342
Регистрация: 28.10.2011
Сообщений: 13,069
Записей в блоге: 7
30.06.2020, 12:06
Цитата Сообщение от Etyuhibosecyu Посмотреть сообщение
А я использую многопоточность, вы не знали?
Судя по времени работы кода, это незаметно.

Цитата Сообщение от Etyuhibosecyu Посмотреть сообщение
И проходил его, может быть, 9 лет и сколько-то месяцев (до .NET).
И при этом пишите такие программы... Программирование это не ваше. Займитесь чем-то другим.

Цитата Сообщение от Etyuhibosecyu Посмотреть сообщение
Но C# оказался для меня самым удобным в настоящее время
Тем что убирать за собой не нужно? Это развивает плохой стиль программирования.

Цитата Сообщение от Etyuhibosecyu Посмотреть сообщение
Как раз C++, а тем более "голый Си" - это не азы, в значении того, с чего надо начинать.
Эти языки дают требуют больше контроля над выделением/освобождением памяти и объектов и они лучше подходят для обучения. Потому что если умеешь писать быстрые и безглючные проги на C/C++ и других подобных языках, на C# быдлокодить не станешь.

Цитата Сообщение от Etyuhibosecyu Посмотреть сообщение
Измерил время сжатия Властелина Колец четвертым билдом на экстремальных настройках - 5 минут 4 секунды при загруженном процессоре.
Медленно, медленно, очень медленно!
0
Труд вопреки насмешкам
 Аватар для Etyuhibosecyu
363 / 181 / 41
Регистрация: 13.07.2017
Сообщений: 4,829
Записей в блоге: 14
30.06.2020, 12:09  [ТС]
Цитата Сообщение от locm Посмотреть сообщение
Судя по времени работы кода, это незаметно.
Ну если вы судите об использовании многопоточности по времени работы... Мне вас жаль.
Цитата Сообщение от locm Посмотреть сообщение
Эти языки дают требуют больше контроля над выделением/освобождением памяти и объектов и они лучше подходят для обучения. Потому что если умеешь писать быстрые и безглючные проги на C/C++ и других подобных языках, на C# быдлокодить не станешь.
У меня в университете по Си 4, по C++ - 5.
Цитата Сообщение от locm Посмотреть сообщение
Медленно, медленно, очень медленно!
А сколько, вы считаете, быстро?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
30.06.2020, 12:09

Вставка тега <pre></pre> в файлы директории
Здравствуйте, форумчане! Не подскажете как можно средствами php вставить тег &lt;pre&gt;&lt;/pre&gt; во все текстовые файлы в директории...

Вывести ответ сервера в <pre></pre>
Добрый день! Подскажите, пожалуйста, как мне в примере ниже сделать так, чтобы значение data выводилось не с помощью alert, а выводилось в...

Продам плату Stream Alpha Plus + Alpha Pro 2.0 + Tele 2.2 б/у
Плата Stream Alpha Plus немного б/у, CD-диск Alpho Pro 2.0, CD-диск TELE 2.2, USB-ключ защиты для программ. Обратите внимание на цены...

Netlist для ARES (proteus)
интересует 1 вопрос. А существуют ли программы (по мимо isis) которые могут сделать нетлист для ARES? А то искал в оркаде 10, там нет...

ARES 7 Professional экспорт в PDF негатив
При экспортирование готовой печатной платы в PDF формат в негативном цвете выходит вот это То есть отображаются только...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
60
Ответ Создать тему
Новые блоги и статьи
Установка нескольких штампов электронной подписи в строго определенных местах файла docx
ВладимирСамохин 19.07.2026
(В!) Работа с Электронной подписью - это неотъемлемая часть современного документооборота. Но что делать, если нужно поставить несколько штампов электронной подписи в строго определенных местах. . .
сукцессия 35. Научная статья о проделанной работе
anaschu 19.07.2026
Написал в формате латекс и пдф
Вангую, что это не пройдёт модерацию, и на неделе я запущу свой сервер.
Hrethgir 19.07.2026
Эта публикация сейчас в песочнице и ждёт приглашения. https:/ / habr. com/ ru/ sandbox/ 295048/ начало и оглавление - Как «пернатого» заставить осваивать новые горизонты опыта через масштабирование. . .
сукцессия 33. открытые вопросы от клауде
anaschu 19.07.2026
"Что накопилось за эту часть А — тринадцать правок, из которых шесть пришли из ваших вопросов и каждая оказалась реальной ошибкой, а не калибровкой: односторонний симбиоз, отсутствующий листопад,. . .
32 сукцессия
anaschu 19.07.2026
сукцессия 28‑мерное ядро стабилизировано Коллеги, фиксирую разбор инженерных правок и их изоморфную проекцию на экономику, меметику и половой отбор. Модель теперь не «подкручивает» сходимость —. . .
сукцессия 31: модель микоризы - это модель ещё нескольких явлений, социальных и экономических
anaschu 18.07.2026
Теория «Всего»: апдейт v1. 1. 2 — 28‑мерное ядро стабилизировано Коллеги, фиксирую разбор инженерных правок и их изоморфную проекцию на экономику, меметику и половой отбор. Модель теперь не. . .
сукцессия 30. Массив проверяющих друг друга моделей
anaschu 18.07.2026
Архитектура сети взаимопроверяющих моделей микоризной сукцессии (v2. 0) Развитие тензорного ОДУ-ядра и создание кросс-платформенного калибровочного полигона Уважаемые коллеги! В продолжение. . .
Грибы - это женщины, деревья - это мужчины. Анти инь янь для союза мужчины и женщины.
anaschu 18.07.2026
ГЛАВНЫЙ НАУЧНО-ФИЛОСОФСКИЙ ВЫВОД: Сексуально-Репродуктивный Капитализм против Государства Моногамии Коллеги, мы вышли на финишную прямую 20-мерного ОДУ-моделирования вековой сукцессии (ветка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru