Aihe: Levyosion virittelyä audiokäyttöön 1 | |
---|---|
![]() 12.11.2003 15:04:44 | |
Kuten jo useissa yhteyksissä on mainittu niin moniraitaäänitystä varten kannattaa audiolla varata oma levy tai vähintäänkin oma levyosio ja vielä mahdollisimman nopealta levyltä. Mutta mistä ei yleensä puhuta mitään on että levyosion klusterikoolla on suuri vaikutus siihen kuinka nopeasti levy pystyy toimittamaan dataa ohjelmalle jatkuvana datavirtana, mitä monien yhtäaikaisten raitojen tapauksessa on todella tärkeää. Itse aloin ihmettelemään miksi n-Track alkoi pykimään jo reilulla 10 raidalla vaikka koneessa (Athlon 2600+, 512MB 333MHz, 120GB (5400rpm) + 120GB (7400rpm) pitäisi vääntöä ja vauhtia olla nykymittapuunkin mukaan ihan mukavasti. Etsin netistä neuvoja win200:n virittelemiseksi audiokäyttöön ja jossain törmäsin myös siihen että levyosion klusterikoolla on vaikutusta levyoperaatioden nopeuteen. Latasin sitten netistä DSKBENCH (http://www.sesa.es/us/dskbench/dskbench.htm) nimisen testisoftan, joka emuloin raiturisoftien tapaa lukea dataa levyltä sekä mittaa tiedonsiirron nopeutta eri kokoisilla read blockeilla (mikähän olisi hyvä suomennos?) eli sillä mikä vaikutus kokonaissuorituskykyyn on sill kuinka isoissa paloissa ohjelma lukee tietoa levyltä. Tässä hieman DSKBENCHin tuloksia erilaisilta levyosoilta: HUOM: tracks lukema tarkoittaa 16bit/44.1kHz monoraitaa. A) 5400 rpm / 4kB cluster size Open = 0 ms Write = 32094 ms, 7.98 MB/s, CPU = 0.58 % Flush = 16 ms Rewin = 0 ms Read = 7656 ms, 33.44 MB/s, CPU = 1.30 % Close = 0 ms BlockSize = 131072, MB/s = 10.34, Tracks = 122.97, CPU = 0.82 % BlockSize = 65536, MB/s = 5.66, Tracks = 67.31, CPU = 0.62 % BlockSize = 32768, MB/s = 2.95, Tracks = 35.05, CPU = 0.68 % BlockSize = 16384, MB/s = 1.50, Tracks = 17.81, CPU = 0.04 % (HUOM: testi kestää niin pitkään näillä nopeuksilla että jätin pois 8k ja 4k blokkikoot. Raitalukema kuitenkin käytännössä puolittuu aina blokkikoon puolittuessa joten pienellä jakolaskulla puuttuvat arvot saa helposti) B) Sama levy, eri osio. 64 kB cluster size Open = 0 ms Write = 35625 ms, 7.19 MB/s, CPU = 0.54 % Flush = 15 ms Rewin = 0 ms Read = 8968 ms, 28.55 MB/s, CPU = 1.06 % Close = 0 ms BlockSize = 131072, MB/s = 10.13, Tracks = 120.39, CPU = 0.76 % BlockSize = 65536, MB/s = 5.23, Tracks = 62.15, CPU = 0.75 % BlockSize = 32768, MB/s = 2.58, Tracks = 30.69, CPU = 0.69 % BlockSize = 16384, MB/s = 1.32, Tracks = 15.64, CPU = 0.54 % C) 7200rpm, 4kB cluster size Open = 0 ms Write = 26641 ms, 9.61 MB/s, CPU = 0.64 % Flush = 16 ms Rewin = 0 ms Read = 8860 ms, 28.89 MB/s, CPU = 1.20 % Close = 0 ms BlockSize = 131072, MB/s = 12.66, Tracks = 150.52, CPU = 0.87 % BlockSize = 65536, MB/s = 6.60, Tracks = 78.42, CPU = 0.83 % BlockSize = 32768, MB/s = 3.38, Tracks = 40.23, CPU = 0.85 % BlockSize = 16384, MB/s = 1.71, Tracks = 20.36, CPU = 0.86 % BlockSize = 8192, MB/s = 0.92, Tracks = 10.91, CPU = 0.73 % BlockSize = 4096, MB/s = 0.60, Tracks = 7.19, CPU = 0.77 % d) 7200 rpm, 64kB cluster size Open = 0 ms Write = 23078 ms, 11.09 MB/s, CPU = 0.69 % Flush = 16 ms Rewin = 0 ms Read = 5485 ms, 46.67 MB/s, CPU = 1.64 % Close = 0 ms BlockSize = 131072, MB/s = 11.51, Tracks = 136.79, CPU = 0.80 % BlockSize = 65536, MB/s = 17.50, Tracks = 208.09, CPU = 1.42 % BlockSize = 32768, MB/s = 9.34, Tracks = 111.05, CPU = 1.50 % BlockSize = 16384, MB/s = 4.82, Tracks = 57.32, CPU = 1.36 % BlockSize = 8192, MB/s = 4.51, Tracks = 53.60, CPU = 1.98 % BlockSize = 4096, MB/s = 3.50, Tracks = 41.62, CPU = 2.45 % Luvuista voi päätellä parikin mielenkiintoista seikkaa. Ensinnäkin ohjelman kerrallaan lukeman datablokin koolla on huima vaikutus siihen kuinka montaa audioraitaa ohjelma pystyy käsittelemään kerrallaan ja toiseksi ei voida sanoa että suurempi klusterikoko on aina parempi, kuten A ja B esimerkeistä voi havaita. Ainakin n-Trackissä lukublokin koolla on suuri merkitys ja kannattaa tsekata bufferiasetusten disk loading buffer säätö. Ohjelman bufferisäätö on naimisissa ASIO ajurin latenssin kanssa eli jos latenssin säätää ASIO ajurista pienemmäksi niin jollei disk loadin buffers (DLB) asetusta vastaavasti suurenna niin ohjelman käyttämä lukublokin koko pienenee, mistä taas seuraa se että yhtäaikaa pyörivien raitojen määrä vähenee. Lukublokin koko saadaan kertomalla lukubufferin koko niiden määrällä ja kertomalla tämä DLB määrällä ja sen säädössä hämää se että ainakin 3.3 versiossa lukublokin koko ei näytöllä päivity vaikka DLB arvoa muuttaa ja se, että ohjelma puhuu sampleista vaikka tarkoittaa tavuja. Lukublokin kokoa ei voi myöskään aivan surutta kasvattaa koska se näyttäisi aiheuttavan taas muita ohjelman kokonaissuorituskyvyn kannalta negatiivisia vaikutuksia. Näiden pienten viritysten jälkeen n-Track pystyy soittamaan nykyisellä 6ms latenssilla (ainakin) 66 raitaa (sample rate 44,1kHz) raakana eli ilman efektejä CPU kuorman killuessa 17 - 20 prosentissa. Kun huomioi että n-Track tallentaa datan 32 bittisinä float waveina eli 4 tavua/sample niin tuo siirretty datamäärä vastaa noin 130 16bit/44kHz monoraitaa. Eipä mennyt parin päivän uurastus ihan hukkaan ja seuraavaksi täytyy ottaa työn alle äänityspuoli, mutta siitä juttua sitten myöhemmin. | |
‹ edellinen sivu | seuraava sivu › 1 |
› Lisää uusi kirjoitus aiheeseen (vaatii kirjautumisen)