Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/4: Рейтинг темы: голосов - 4, средняя оценка - 4.50
113 / 100 / 68
Регистрация: 21.04.2014
Сообщений: 1,420

Необходимы пояснения по оптимальному способу сжатия больших файлов

30.06.2017, 21:38. Показов 834. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте.
Есть задача создать программу, которая архивировала бы фалы размером больше оперативной памяти компьютера и делала бы это максимально эффективно. Я стал гуглить эту тему и внезапно нашёл решение как раз для своей задачи: https://github.com/Mikezar/GZip (этот же проект я прикладываю). Я очень старался разобраться в нём и даже смог написать аналог (написать, а не просто CTRL+C, CTRL+V), хотя он так и не заработал как надо. Но в процессе я так и не смог понять некоторых вещей, а именно:
1. Как удаётся избегать переполнения памяти и почему иногда это не работает (закономерность не выявил)?
2. Везде ли обосновано использование lock и почему в конце они не желают "отпускать" программу?
3. А это точно самый оптимальный способ? Просто мне сложно поверить, что нельзя изобрести ничего лучше, чем количество потоков равное количеству ядер)
4. Как работает очередь? Т.е. я знаю что такое Queue, но здесь всё как-то страшно

P.S. Если кто-то знает другие примеры решения этого задания, то я буду очень рад на них взглянуть.
Вложения
Тип файла: zip GZip-master.zip (13.4 Кб, 2 просмотров)
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
30.06.2017, 21:38
Ответы с готовыми решениями:

Необходимы пояснения по коду
Здравствуйте знатоки C++. Прошу не бранить меня сильно за мои вопросы. Только начал изучать C++. Изучаю очереди. Нашел тут хороший топик -...

Дан текстовый файл,содержащий некоторые пояснения,заключенные в скобки. Убрать эти пояснения вместе со скобками
Дан текстовый файл,содержащий некоторые пояснения,заключенные в скобки. Убрать эти пояснения вместе со скобками. Выровнять ...

Регулярное выполнение сжатия файлов Access
Пробовал Этапы восстановления поврежденной базы данных...

4
113 / 100 / 68
Регистрация: 21.04.2014
Сообщений: 1,420
01.07.2017, 15:51  [ТС]
Всё ещё актуально.
0
113 / 100 / 68
Регистрация: 21.04.2014
Сообщений: 1,420
03.07.2017, 13:05  [ТС]
Попытался ещё раз написать аналог. Столкнулся с ещё одной неожиданной проблемой: Я вижу как данные пишутся в новый файл (по методу Write прохожу дебагером) но по факту их там не оказывается о_о" Прикладываю свою версию программы.
Вложения
Тип файла: rar Test.rar (54.4 Кб, 4 просмотров)
0
HF
 Аватар для HF
1314 / 893 / 200
Регистрация: 09.09.2011
Сообщений: 2,659
Записей в блоге: 2
03.07.2017, 19:31
Вы нашли решение на свою задачу, но задали вопросы на тему программирования. Потом попытались написать тоже самое, почти без изменений из оригинала, но где-то ошиблись. Вопрос "Зачем?"
Зачем вы что-то начали переписывать? Вам нужно изучать программирование, тогда вы начнёте получать ответы на 2 и 4ый вопросы. Вопросы 1 и 3 - это как раз алгоритм того автора. И если это работает, значит он сделал это хорошо, избегая переполнений и оптимально. Будете понимать код, поймёте что там происходит.
0
113 / 100 / 68
Регистрация: 21.04.2014
Сообщений: 1,420
04.07.2017, 11:28  [ТС]
Цитата Сообщение от HF Посмотреть сообщение
Вопрос "Зачем?"
В том решении, что я нашёл не было незнакомых мне элементов, но как работает я не понял. Поэтому решил, что если я воспроизведу программу шаг за шагом, то мне станет легче. Но что-то нет... Скорее даже на оборот, некоторые моменты работали совсем не так как я ожидал.
Цитата Сообщение от HF Посмотреть сообщение
Вам нужно изучать программирование
Я выбирал непонятные мне блоки, пытался разбирать их. Ходил на msdn, чтобы убедиться, что lock, Queue и другое работает так как я знаю. Сделал для этого парочку простых примеров, которые работали как надо. Вернулся к непонятным элементам в программе... и они по прежнему были мне непонятны... Я явно что-то упускаю. И надеялся, что кто-то со стороны сможет объяснить мне, как работает программа, чтобы я наконец увидел, что же.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
04.07.2017, 11:28
Помогаю со студенческими работами здесь

Архивация файлов по маске, с указанием типа сжатия
Добрый день. Подскажите, решение такого вопроса на Win 2012 R2 есть диск с архивным содержимым почты. Нужно архивировать (пардон за...

Не отображаются эскизы видео файлов после сжатия с ffmpeg
С целью уменьшить размер видео файлов воспользовался FFmpegYAG со стандартными настройками. Формат файлов mp4, кодек h264. Единственный...

Пакетная обработка файлов с использованием программы для сжатия изображений
Всем доброго дня. Я использую софтину pngout для сжатия картинок для сайта. Я написал простейший батник для сжатия картинок по...

Пропал звук после сжатия файлов 360 Тотал Секьюрити
Всем доброго времени суток! Возникла проблема: есть старый ноут Sony Vaio FZ21MR. Первоначально на нем стояла Виста, которая в...

При попытке выполнения сжатия диска система пишет, что доступное для сжатия место — всего лишь 45 МБ
Приветствую. Пытаюсь отделить от диска D (не системный) 50гб памяти. На диске 450+гб памяти всего , из них 150гб свободно. При попытке...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru