tansy
Junior Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору @EugeneRoshal Цитата:| In fact, I myself forgot about -sv being yet another solid switch If unified -s is ever implemented, -sv | (Maybe) It's because its section in manual is separate from `-s - solid' section, and you don't see it any more. And, maybe, because it didn't cause any problems so you forgot about it, as it was so obvious. Maybe all the above. ---- Just wanted to explain how it's done in competition. Way 7z does it is to put whole files in solid blocks. When block boundary ends mid file then the block is extended till end of the file. 1) Assume `-' is 1MB and user sets solid block size to be 10MB 2) `*' is solid block desired size, `+' is solid block extension 3) resulting blocks Код: 1) file1 file2 file3 file4 |-------|-------------|-----|--------| 2) block1 block2 |**********+++++++++++|**********++++| 3) block1 block2 |*********************|**************| | It could also utilise mechanism from solid volumes (-sv) where blocks are, or shall I say can be, hard cut, without troubling with file limits. Код: 1) file1 file2 file3 file4 |-------|-------------|-----|--------| 2) block1 block2 block3 block4 |**********|**********|**********|***| | PS. code block on this forum does not use monospaced font so here it is in more useful way: paste @lelik007 Цитата: - I don't care this much so as about semi-solid archives in general because it's not very likely we would use them in our production environment. | It's very useful option. Imagine you have 1GB of files packed in single block solid archive and you want to decompress just one of them, somewhere at the end - you have to decompress 1GB of data to get that one file. If you set up 100MB solid blocks, you have to decompress at most 100MB to get that file. Which is obviously many times faster. In the same time you still benefit from aggregating more files and compressing them 'together'. On top of that when you set solid block to be certain size you know pretty accurately how big the block will be (obviously) and how long will it take to decompress. When you make it consist of N files you have no idea, nor control, how big it is and how long will it decompress. There can be small block that happen to combine bunch of small files and then big block that consists of big files. It is also useful option in case of damage as it leaves undamaged blocks untouched. | Всего записей: 118 | Зарегистр. 19-09-2024 | Отправлено: 19:04 02-01-2025 | Исправлено: tansy, 15:26 29-07-2025 |
|