» Poradna » Windows (a jiné OS)

Unzip multithreading

avatar
 | Microsoft Windows 7 Chrome 37.0.2062.94

Ahoj, trochu mi vadí v totalcommanderu 7.56a jedna věc : 1GB na exteráku(100MBps) soubor obshahující asi 120000 souborů (store komprese )se rozbaluje 5 minut (žere 5 minut proc. času tedy jedno jádro ze 4 vytížené) do ramdisku, zdá se mi to nějak dlouho. Na windows 7, CPU 2.7GHz i7, NTFS na ramdisku. Zaprvé single threading. Existuje multithreading aplikace (un)zip algoritmu? ZA druhé není to ani tak příliš dlouho?

Odpovědi na otázku

 | Microsoft Windows 7 Chrome 36.0.1985.143

V první řadě bych vyzkoušel extrakci na klasický interní disk, nebo ideálně SSD. Již jsem se setkal s podobným chováním ramdisku, kdy jsem při používání ramdisku měl zahlcené jedno jádro procesoru. Způsoboval to ramdisk, který nestíhal to co jsem mu tam cpal. Bohužel už si nevybavím v jaké situaci k tomu došlo, ale může to být i tvůj případ.A pak si říkám co máš asi na mysli tou STORE kompresí. Jestli je to zip bez komprese, tj soubory tam jsou uložené ve stejné velikosti, tak to při rozbalování nemůže žrát procesor, protože se tam nic nepočítá, maximálně pozice začátku a konce souboru, ale jinak se data přenášejí 1:1 a nárok na výpočetní výkon je nula nula nic.Nebo jestli tím nemyslíš "SOLID" archiv, tj stav, kdy jsou všechny soubory komprimovány jako jeden celek, a to možná nejde paralelizovat na vlákna. Ale tento způsob myslím zip nepodporuje, to umí jen 7z nebo rar, případně tar.gz

Souhlasím  |  Nesouhlasím  |  Odpovědět
 |   |  Microsoft Windows 7 Firefox 31.0

Tak mě napadá, že algoritmus Unzip je možná (do jisté míry) paralelizovatelný. Můžeš rychle z toh archivu vytáhnout jakýkoli soubor samostatně, tak to nejspíš jde rozdělit na vlákna, kde každé bude zpracovávat jen "ty svoje" soubory z archivu. Ale nezkoušel jsem to, jen jsem zadal do Googlu jednoduché heslo a cosi to na mně vyplivlo:https://www.google.cz/search

Souhlasím  |  Nesouhlasím  |  Odpovědět

Související témata: Multithreading