abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
AbcLinuxu hledá autory!
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×

    dnes 07:00 | Komunita

    V rámci konference Hackers Congress Paralelní Polis vystoupí v Praze v neděli 1. října v 18:00 hodin Richard Stallman s přednáškou Free Software And Your Freedom.

    Jendа | Komentářů: 1
    včera 14:44 | Nová verze

    Byla vydána verze 6 s kódovým název Faye linuxové distribuce LMDE (Linux Mint Debian Edition). Podrobnosti v poznámkách k vydání. Linux Mint vychází z Ubuntu. LMDE je postaveno na Debianu.

    Ladislav Hagara | Komentářů: 2
    včera 13:11 | Bezpečnostní upozornění

    Byly publikovány informace o novém bezpečnostním problému pojmenovaném GPU.zip (paper, GitHub). S vlastním logem. Jedná se o možný útok postranním kanálem na grafickou kartu (GPU). Proces může "krást pixely" jinému procesu.

    Ladislav Hagara | Komentářů: 1
    včera 08:00 | Komunita

    Projekt GNU dnes slaví 40. výročí. Přesně před čtyřiceti lety, 27. září 1983, Richard Stallman oznámil, že se chystá napsat s Unixem kompatibilní operační systém GNU (Gnu's Not Unix). Hlavní oslava a setkání hackerů probíhá ve Švýcarsku ve městě Biel/Bienne. Na programu je také přednáška Richarda Stallmana.

    Ladislav Hagara | Komentářů: 5
    26.9. 15:55 | Nová verze

    Byl vydán Mozilla Firefox 118.0. Přehled novinek v poznámkách k vydání, poznámkách k vydání pro firmy a na stránce věnované vývojářům. Vypíchnout je nutno automatický lokální strojový překlad webových stránek. Řešeny jsou rovněž bezpečnostní chyby. Nový Firefox 118 je již k dispozici také na Flathubu a Snapcraftu.

    Ladislav Hagara | Komentářů: 34
    26.9. 12:55 | Nová verze

    Byla vydána nová major verze 15.0.0 softwaru OCRmyPDF pro přidávání textové vrstvy k naskenovaným PDF dokumentům (PDF/A). Přehled novinek v poznámkách k vydání. OCRmyPDF využívá pro optické rozpoznávání znaků (OCR) engine Tesseract.

    Ladislav Hagara | Komentářů: 13
    26.9. 12:22 | Zajímavý software

    Karel Matějka zveřejnil druhé demo své chystané hry Bzzzt. Kromě verze pro Windows a macOS je dostupná i verze pro Linux. Plná verze hry má vyjít zanedlouho.

    Ondřej J | Komentářů: 7
    25.9. 20:33 | IT novinky

    Noví Bulánci byli oficiálně vydáni. V roce 2021 bylo na Startovači na podporu vývoje této hry vybráno 7,3 miliónů Kč. Hra je zatím určena jenom pro Windows, díky Protonu ale běží také na Linuxu.

    Ladislav Hagara | Komentářů: 8
    25.9. 14:55 | IT novinky

    ChatGPT může vidět, slyšet a mluvit.

    Ladislav Hagara | Komentářů: 4
    25.9. 14:33 | Zajímavý software

    Upscaler je open source nástroj pro zvýšení rozlišení a vylepšení obrázků pomocí AI. Vývoj probíhá na GitLabu. Instalovat lze také z Flathubu. Stejně jako Upscayl je Upscaler postaven nad Real-ESRGAN.

    Ladislav Hagara | Komentářů: 1
    Knihy s linuxovou tematikou
     (19%)
     (15%)
     (51%)
     (27%)
    Celkem 277 hlasů
     Komentářů: 11, poslední 17.9. 19:19
    Rozcestník

    Dotaz: optimalizace cteni ze souboru v BASHi

    14.10.2010 10:36 ext3fs
    optimalizace cteni ze souboru v BASHi
    Přečteno: 485×
    ahoj,

    resim jak zrychlit v BASHi prochazeni log souboru. V cyklu potrebuji nacitat po radcich coz resim pomoci:
    while read STR;
    do
       :
    done < file
    
    Pokud spustim takovy testovaci skrypt na soubor o cca 15 MB textu, tak jsou hodnoty nasledujici
    real    0m3.328s
    user    0m2.948s
    sys     0m0.380s
    
    ale cteni:
    cat file > /dev/null
    
    real    0m0.016s
    user    0m0.000s
    sys     0m0.016s
    
    
    - s pouzitim vystupu jde cas rapidne nahoru
    while read STR;
    do
       echo $STR > /dev/null
    done < file
    
    real    0m15.435s
    user    0m14.281s
    sys     0m1.060s
    
    Pridam-li do takoveho skryptu par grepu na filtrovani tak je prace s takovym souborem na nekolik minut. Je nejaka moznost urychleni?

    Diky.

    Řešení dotazu:


    Odpovědi

    14.10.2010 11:18 Semo | skóre: 45 | blog: Semo
    Rozbalit Rozbalit vše Re: optimalizace cteni ze souboru v BASHi
    Pridat par grepov znamena sputat desattisice procesov. Spustenie externeho procesu je jedna z najdrahsich veci, ktora sa da v bashi spravit. Vzdy je lepsie pustit jeden grep na 1000 riadkov ako 1000 grepov na riadok.

    Takze bud sa lepsie naucis grep, aby si to s nim zvladol bez cyklu, alebo pouzijes sed (prip. awk) rovno na ten logfile. Alebo si pozries manual ku bashu a zistis, ze matchovanie podla regexpov sa da spravit aj v bashi cez [[ =~ ]] a pole bash_REMATCH, cim usetris spustanie externych procesov.
    If you hold a Unix shell up to your ear, you can you hear the C.
    14.10.2010 19:27 ext3fs
    Rozbalit Rozbalit vše Re: optimalizace cteni ze souboru v BASHi
    Pouziti regexu primu v bashi a omezeni spousteni grepu je opradu vyraznym zrychlenim. Diky za radu.
    15.10.2010 05:56 Ash | skóre: 53
    Rozbalit Rozbalit vše Re: optimalizace cteni ze souboru v BASHi
    Další možností je, pokud nepracujete s nabodeníčky (utf8), používat pro nástroje typu grep, sed LANG=C.

    Např. soubor 500000 řádků kladných a záporných čísel:
    bash$ time grep "^-" soubor > soubor2
    
    real    0m13.343s
    user    0m13.322s
    sys     0m0.013s
    
    bash$ time LANG=C grep "^-" soubor > soubor2
    
    real    0m0.024s
    user    0m0.007s
    sys     0m0.010s
    Pro přístup k utf8 znakům (ke každému jednomu) se používá jiná rutina (mohou mít různou délku), takže to dost zpomaluje. Je to v zásadě chyba, možná to je už někde vyřešené/optimalizované, nevím.
    15.10.2010 06:01 Ash | skóre: 53
    Rozbalit Rozbalit vše Re: optimalizace cteni ze souboru v BASHi
    Nebo samozřejmě i pro Bash jako ve vašem příkladě. Pro všechno co čte znaky:
    bash$ time bash -c "while read STR; do :; done < soubor"
    
    real    0m6.095s
    user    0m5.660s
    sys     0m0.430s
    
    bash$ time LANG=C bash -c "while read STR; do :; done < soubor"
    
    real    0m3.180s
    user    0m2.723s
    sys     0m0.447s
    
    14.10.2010 11:33 Šangala | skóre: 56 | blog: Dutá Vrba - Wally
    Rozbalit Rozbalit vše Re: optimalizace cteni ze souboru v BASHi
    A napadlo Vás, že toto „- s použitim vystupu jde cas rapidne nahoru“ není problém čtení? :)
    A opravdu to potřebujete procházet po řádku rúčo?
    To, že trpíš stihomamem, ještě neznamená, že po tobě nejdou. ⰞⰏⰉⰓⰀⰜⰉ ⰗⰞⰅⰜⰘ ⰈⰅⰏⰉ ⰒⰑⰎⰉⰁⰕⰅ ⰏⰉ ⰒⰓⰄⰅⰎ ·:⁖⁘⁙†
    14.10.2010 11:49 Vojtěch Horký | skóre: 39 | blog: Vojtův zápisník | Praha
    Rozbalit Rozbalit vše Re: optimalizace cteni ze souboru v BASHi
    Je nejaka moznost urychleni?
    Jediný způsob, jak zrychlit shellovský skript je použít jiný programovací jazyk ;-).

    Ale vážně - pokud jde o nějaké složité manipulace s textem, zkuste PERL (pokud ho neumíte, tak základy, abyste zbastlil náhradu grepu v cyklu přes řádky, se naučíte za pár minut). Těch 15MB pro něj nebude příliš velký problém...

    Shellovské skripty se obvykle používají, pokud Vám jde o přenositelnost (mezi různými Unixovými systémy, kde jsou k dispozici pouze základní nástroje typu grep, sed, cut ...) a nepotřebujete výkon. Nebo pokud si potřebujete zautomatizovat spuštění několika programů po sobě (a tam zpoždění pár vteřin nevadí, protože to jde určitě rychleji, než kdybyste to pouštěl ručně).
    I am always ready to learn although I do not always like to be taught. (W. Churchill)
    14.10.2010 12:33 Semo | skóre: 45 | blog: Semo
    Rozbalit Rozbalit vše Re: optimalizace cteni ze souboru v BASHi
    Kecy. Aj v bashi sa da programovat efektivne a da sa aj prasacky. Kubicko-zlozity algoritmus v C-kcu bude na netrivialnych vstupoch dalkeo pomalsi nez linearny v bashi. Navyse nastroje, ktore typicky robia namahavu pracu su pisane v C-cku (grep, sed ai.), takze staci dodrzat par pravidiel pri ich spustani (spustat malokrat na velke vstupy a nie velakrat na male vstupy) a nebude prakticky rozdiel pri pouzivani skriptov a kompilovaneho optimalizovaneho kodu.
    If you hold a Unix shell up to your ear, you can you hear the C.

    Založit nové vláknoNahoru

    Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

    ISSN 1214-1267   www.czech-server.cz
    © 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.