Date: 2016-10-31 08:17 pm (UTC)
From: [identity profile] fatoff.livejournal.com
Пробежался глазами, хотел что-то сказать про то, что битность платформы в данном случае не должно быть непреодолимым препятствием, лишь бы выводить продукт сжатия на диск своевременно, и иметь разумный размер входного буфера. Потом увидел, что автор поучаствовал в WinRar, и передумал что-то говорить: тут какая-то засада собственно в  перловом скрипте или библиотеке (де)компрессии.
Edited Date: 2016-10-31 08:19 pm (UTC)

Date: 2016-11-01 03:54 am (UTC)
From: [identity profile] anspa.livejournal.com
Да, разумеется. Итс окей, как говорят у нас на ист косте, мы открыты для обсуждений. Засада в старом формате zip архива, который имел определенные лимиты (ну кому в 89-м году пришло бы в голову что 65535 файлов в одном зипе может не хватить). Про 2Гб тоже, чисто ограничения формата. Т.е. просто там 32-битные длины в оффсетах и когда размер превышает лимит они тупо переполняются и начинают писать файл с нулевого оффсета. Zip-овцы давно уж придумали новый "64bit" формат. Проблема в том что товарищи, ответственные за Archive::Zip модуля для Perl его так и не имплементировали. Хотя распаковывать 64bit-ный формат можно через IO::Uncompress, модуля сжатия нет. Можно было б прикрутить вызов внешней утилиты, но это отстой и непереносимость между ОС. Вкратце так.

Date: 2016-11-01 04:18 am (UTC)
From: [identity profile] fatoff.livejournal.com
Не, естественно, второй мыслью было дочитать вашу мысль до конца. :D
Спасибо за развёрнутое объяснение. Рошаль большой молодец.

Date: 2016-11-01 11:51 am (UTC)
From: [identity profile] anspa.livejournal.com
Да не за что. =) Со мной никто не разговаривает, поэтому я иногда не прочь поговорить. А Женя, да, молодец. Спасибо. =)

Date: 2016-11-01 05:28 pm (UTC)
From: [identity profile] fatoff.livejournal.com
Что ещё интересно, так используются ли многие головы процессора при сжатии многофайлового архива?

Date: 2016-11-01 05:55 pm (UTC)
From: [identity profile] anspa.livejournal.com
Здравая идея. Я могу нарисовать примерчик где таки используются внутри одного процесса. Но, т.к. в данной конкретной системе на одном сервере бежит много параллельных работ одновременно, распараллеливать треды внутри одного процесса нет большого смысла. Вот получение тысяч файлов по http - то да, параллельно до сотни сессий делается.
Edited Date: 2016-11-01 05:56 pm (UTC)

Date: 2016-11-02 04:01 pm (UTC)
From: [identity profile] anspa.livejournal.com
Дописал там про очередной фикс. Оказывается оно сообщало неверно uncompressedSize как compressedSize. Тоже ловушечка модуля.

Date: 2016-11-04 11:44 pm (UTC)
From: [identity profile] fatoff.livejournal.com
Вот прямо сейчас копая опен-сорс за отсутствием нужных решений где-либо в точности расследованием программных ошибок и занят. А так хотелось побыстрее сделать proof of concept. Благородное дело, исправлять опенсорс. Но я до конца не смогу выправить, где копаю, больше в принцип вникаю, чтобы воспроизвести по частям.

Date: 2016-11-05 03:32 am (UTC)
From: [identity profile] anspa.livejournal.com
Hidden costs of free open source? =)

Date: 2016-11-06 09:06 pm (UTC)
From: [identity profile] fatoff.livejournal.com
С другой стороны... github clone и понеслась.

Profile

anspa: (Default)
anspa

December 2016

S M T W T F S
    123
45678910
11121314151617
18192021 222324
25 262728293031

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Jun. 12th, 2025 05:54 pm
Powered by Dreamwidth Studios