Page 1 of 2
Salamander vždy fragmentuje soubory
Posted: 29 Dec 2008, 21:21
by zarevak
Dobrý den,
nejdřív mne toto chování udivilo, ale nakonec se ukázalo jako vždy opakovatelné: Salamander při kopírování rozdělí soubor na dva fragmenty - první fragment velký jeden cluster a druhý fragment obsahuje celý zbytek.
Explorer i Total Commander kopírují na mém systému soubory v jednom celku. Soubor se do volných bloků vejde celý.
Code: Select all
Mapa disku před kopií:
XXXXXXXX________
__XXX_______XXXX
Mapa disku po kopírování Salamanderem z jiného disku:
XXXXXXXX2222____
__XXXX1_____XXXX
Mapa disku po kopírování Explorerem z jiného disku:
XXXXXXXX________
__XXXX11111_XXXX
Legenda:
X - původní data
_ - volné místo
1 - první fragment
2 - druhý fragment
Systém: Windows XPSP3 EN Pro; Salamander 2.51; NTFS s 4KB clustery
Posted: 29 Dec 2008, 23:22
by zarevak
Tak jsem si na Salamandera posvítil Process Monitorem a objevil jsem něco divného:
Code: Select all
SetEndOfFileInformationFile(soubor.ext, 60 772)
WriteFile(soubor.ext, Offset: 0, Length: 1) -- zápis jednoho Byte?
SetEndOfFileInformationFile(soubor.ext, 1) -- zpět na jeden Byte??
QueryStandardInformationFile(soubor.ext) -- AllocationSize: 4 096, EndOfFile: 1, NumberOfLinks: 1, DeletePending: False, Directory: False
SetEndOfFileInformationFile(soubor.ext, 60 772) -- znova správně?
Total Commander nastaví velikost souboru jen jednou.
BTW: Toto fórum nepodporuje soubory s příponou CSV

Posted: 05 Jan 2009, 08:25
by Petr Solin
Koukal jsem na to a podle kodu se dela nastaveni souboru na plnou velikost, pak seek na zacatek souboru a zapis jednoho bytu, nastaveni konce souboru a test velikosti souboru. Za jistych podminek se totiz deje to, ze misto zapisu na zacatek souboru se zapisuje na konec, tedy vysledek teto operace je soubor o velikosti o jeden byte vetsi nez je zdrojovy soubor (v teto situaci nelze pouzit nastavovani velikosti souboru predem). Tento test se dela jen pro prvni soubor copy/move operace. Casem udelam testy a proverim proc to dela to, co popisujete a pokusim se to opravit. Teoreticky by to delat nemelo, protoze by se soubor mel alokovat v plne velikosti, a pak teprve zkratit.
Posted: 05 Jan 2009, 14:57
by Tomas Kopal
zarevak wrote:
BTW: Toto fórum nepodporuje soubory s příponou CSV

Opraveno, diky za upozorneni.
Posted: 05 Jan 2009, 23:59
by zarevak
Zápis jednoho byte tedy rozumím, ale nechápu, proč je v záznamu pak hned nastavení velikosti na jeden byte:
Code: Select all
SetEndOfFileInformationFile(soubor.ext, 1) -- zpět na jeden Byte??
Je možné, že to je vedlejší účinek nějaké knihovní funkce nebo toho zjištění velikosti... (Ale to zjištění velikosti je asi až to následné
QueryStandardInformationFile(soubor.ext))
Posted: 09 Feb 2009, 11:20
by iX
Take mi to dela. copy/move vzdy rozdeli soubor na 2 casti - malou a velkou. vidim to pak na mape v O&O defragu.
Posted: 18 Mar 2009, 17:53
by zarevak
Petr Solin wrote:Mam tenhle problem hodne vysoko na todo, opravim to fragmentovani ... (i kdyz ho tu bohuzel nejsem schopen reprodukovat).
Původně jsem podezíral O&O Defrag, ale teď jsem reprodukoval problém na mých virtuálních Windows 2000 s Altap Salamanderem 2.52 beta 1, kde není O&O Defrag nainstalovaný:
1) Pustím Salamander
2) Stáhnu
Contig.zip ze Sysinternals
3) Vstoupím Salamanderem do
contig.zip archivu a dám
Ctrl+C na
contig.exe
4) Ve složce s archivem vytvořím testovací adresář, kam
contig.exe vybalím pomocí
Ctrl+V
5) Spustím
contig.exe -a contig.exe (přpínač
-a jen zobrazuje informace)
x) Výsledek:
Average fragmentation: 2 frags/files
Vzhledem k tomu, že se jedná o 200kb velký soubor, je mizivá pradvěpodobnost, že by se nikam v celku nevešel.
EDIT: Pomocí stejného postupu reprodukováno na
Visual Studio 2010 CTP Virtual PC.
Posted: 18 Mar 2009, 18:03
by Petr Solin
Ted mi to tu fragmentuje i pri beznem kopirovani, takze je to reprodukovanelne, dik. Netusim, proc mi to predtim nedelalo, asi nejaka moje chyba.
Re: Salamander vždy fragmentuje soubory
Posted: 26 Apr 2009, 19:30
by xm
Je neco noveho s resenim tohoto problemu?
Musel jsem davat do kupy par uzivateli zasr... PC. Krome jineho extremne fragmentovane disky. Nektere soubory ani nesly defragmentovat (nap. gigove outlook.pst aj.), tak jsem je presunul na jiny disk, pak puvodni disk defragmentoval a tyto velke soubory nakopiroval zpatky. Jake bylo moje prekvapeni, kdyz defrag ukazal, ze jsou znovu fragmentovane (kontinualniho mista na disku bylo dost). Tak delete a znovu nakopirovat zpet, tentokrat Win Explorerem. Vysledek = zadna fragmentace.
Uz s tim neco udelejte, neni mozne, aby souborovy manazer fragmentoval soubory, kdyz nemusi!
Re: Salamander vždy fragmentuje soubory
Posted: 26 Apr 2009, 21:21
by Jan Rysavy
xm wrote:Jake bylo moje prekvapeni, kdyz defrag ukazal, ze jsou znovu fragmentovane (kontinualniho mista na disku bylo dost).
O jaký šlo operační systém?
Salamander byl v jaké verzi?
Na kolik fragmentů byly soubory rozsekány (řádově)?
Čím sledujete fragmentaci souborů?
Šlo předpokládám o NTFS?
Re: Salamander vždy fragmentuje soubory
Posted: 26 Apr 2009, 22:35
by xm
Jan Rysavy wrote:
O jaký šlo operační systém?
Salamander byl v jaké verzi?
Na kolik fragmentů byly soubory rozsekány (řádově)?
Čím sledujete fragmentaci souborů?
Šlo předpokládám o NTFS?
- Win XP Pro SP3 CZ x86
- Sal 2.51
- ~2GB soubor na 12 fragmentu
- MS XP standardni defrag, disk byl pred kopirovanim vicekrat defragmentovany (v defrag-logu nakonec zadna fragmentace krome MFT a nejakych pidi-souboru), po nakopirovani 2GB souboru z jineho disku a pouziti "Analyzovat" v MS defragu byl tento soubor fragmentovany (log), na disku bylo v tu dobu kolem 15GB volneho (nerozkouskovaneho) mista
- NTFS
Re: Salamander vždy fragmentuje soubory
Posted: 18 Aug 2009, 15:30
by Petr Solin
Opraveno. Kopirovani uz by melo produkovat soubory s jedinym fragmentem, bude to v 2.52 beta 2. Fragmentovalo to pouze prvni soubor z kopirovane davky (pri oznaceni celeho disku by mel vzniknout jen jediny dvoufragmentovy soubor, zbytek by mel byt OK i ve stare verzi).
Re: Salamander vždy fragmentuje soubory
Posted: 19 Aug 2009, 17:25
by xm
Vyborna zprava, diky.
Kdy bude mozno vyzkouset (~ETA 2.52b2)?
Re: Salamander vždy fragmentuje soubory
Posted: 19 Aug 2009, 21:22
by Petr Solin
Do konce tydne by mela byt 2.52 beta 2 hotova.
Re: Salamander vždy fragmentuje soubory
Posted: 21 Aug 2009, 21:35
by zarevak
Juchů, díky...
Teda napůl

Extrahování ze Zipu (a asi i z jiných archivů) stále dva fragmenty vytváří
