Posted By: snake (:q!) on 'CZmswindows' Title: Re: Winy z USB disku Date: Thu Dec 21 23:04:35 2006 > Vysvetli Woknum, ze maji swapovat do ramdisku. :) To myslis vazne? Tak za prve, to prvni, co delam od doby, co mam alespon 64 MB RAM, bylo vzdy vypnuti swapu. Nikdy jsem swap proste nepotreboval, a to ani na linuxu (a oba systemy jsou ochotne swap pouzivat i kdyz vubec neni v danou chvili potreba, a tim mi zpomalovat praci). No a za druhe, a to nejpodstatnejsi: swap je samozrejme z hlediska zapisu na flashku zdaleka ta nejidealnejsi aplikace. Uvedom si, ze to, co flashdisk nici, je opakovane prepisovani konkretniho mista (coz daleko vice odpovida napr. inkrementalnimu zapisu do logu, neustalem updatu timestampu u nejakych hodne vyuzivanych souboru jako jsou registry atd atd.). Swap je uplne o necem jinem: jde o zapisy a cteni obrovskeho mnozstvi dat, jenze zapis sekvencni, cili kazdy blok je zapsan jen jednou. A i kdyby system swapoval opravdu zurive, pak proste rozhodne nebude zapisovat na stale stejne misto (to by znamenalo jednoduse totalni selhani swapovaci strategie: tedy naprosto nejhorsi mozny odhad stranky vhodne k odlozeni; a myslim, ze i v pripade nejake hodne bestialni aplikace bys i windozum v tomto pripade proste krivdil)... Kdyz budu pocitat takovej hodne divnej priklad, ze budu cyklicky prepisovat cely obsah dejme tomu ctyrgigovy pameti rychlosti (at se to dobre pocita) 10 MB za vterinu, pak sam dojdes k zaveru, ze zrovnatakovahle strategie ke zniceni vede az za opravdu extremni dobu. Pocitej se mnou: 4 giga deleno 10 mega je 400 vterin na jedno kolo. To je 9x do hodiny, tedy at nezeru 250x za den. I kdyz Ti dam jen 100 tisic zapisu, bude Ti takovy zpusob zniceni flashky trvat 400 dnu, cili dele nez rok. Jenze ono jde pocitat az s milionem, dal taky sotva swapujes celou dobu, dale pocitac budes z flashky poustet ne 24/7, ale spis jen tak 10% celkoveho casoveho fondu - a suma sumarum, prepisoval bys do zniceni 100 let... Prekvapko, co? snake P.S. Na argumenty, ze swap nezabira celou flashku, ale treba jen jeden konkretni gigabajt z tech 4, nereflektuji: prave od toho je tu ten wear-leveling a kdyz zjisti, ze nektere bloky jsou o dost vice pouzivane nez jine, proste je zprehazi. U zapisu velkeho mnozstvi sekvencnich dat to funguje dokonale, protoze flashka je prepisovana po blocich. Jedine, proti cemu se nedokaze tak zdarile branit, je prepis jen jedinych bajtiku - flashka musi zapsat znovu cely blok. Jenze i na tohle funguje ten wear-leveling, pokud by vychazel zapis porad na ty stejne konkretni bloky a ostatni by zustavaly netknute, za druhe kvuli nutnosti zapisovat cely blok se vyrazne zpomaluje rychlost zapisu (klesa pak na desitky kilo ci i mene za vterinu) a za treti, od toho, aby podobne veci zbytecne nedelaly problemy, tu mame cachovani. To zaridi, ze se blok nezapise opakovane znova a znova jednoduse tim, ze zapis o nekolik malo vterin pozdrzi, nez se nashromazdi dat vice...