abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
    včera 18:22 | Nová verze

    Byla vydána verze 0.2.0 v Rustu napsaného frameworku Pingora pro vytváření rychlých, spolehlivých a programovatelných síťových systémů. Společnost Cloudflare jej letos v únoru uvolnila pod licencí Apache 2.0.

    Ladislav Hagara | Komentářů: 0
    10.5. 19:11 | Nová verze

    Open source RDP (Remote Desktop Protocol) server xrdp (Wikipedie) byl vydán ve verzi 0.10.0. Z novinek je vypíchnuta podpora GFX (Graphic Pipeline Extension). Nová větev řeší také několik bezpečnostních chyb.

    Ladislav Hagara | Komentářů: 9
    10.5. 04:11 | Nová verze

    Rocky Linux byl vydán v nové stabilní verzi 9.4. Přehled novinek v poznámkách k vydání.

    Ladislav Hagara | Komentářů: 0
    9.5. 22:22 | Bezpečnostní upozornění

    Dellu byla odcizena databáze zákazníků (jméno, adresa, seznam zakoupených produktů) [Customer Care, Bleeping Computer].

    Ladislav Hagara | Komentářů: 20
    9.5. 21:11 | Zajímavý článek

    V lednu byl otevřen editor kódů Zed od autorů editoru Atom a Tree-sitter. Tenkrát běžel pouze na macOS. Byl napevno svázán s Metalem. Situace se ale postupně mění. V aktuálním příspěvku Kdy Zed na Linuxu? na blogu Zedu vývojáři popisují aktuální stav. Blíží se alfa verze.

    Ladislav Hagara | Komentářů: 39
    9.5. 14:33 | Pozvánky

    O víkendu 11. a 12. května lze navštívit Maker Faire Prague, festival plný workshopů, interaktivních činností a především nadšených a zvídavých lidí.

    Ladislav Hagara | Komentářů: 0
    8.5. 21:55 | Nová verze

    Byl vydán Fedora Asahi Remix 40, tj. linuxová distribuce pro Apple Silicon vycházející z Fedora Linuxu 40.

    Ladislav Hagara | Komentářů: 20
    8.5. 20:22 | IT novinky

    Představena byla služba Raspberry Pi Connect usnadňující vzdálený grafický přístup k vašim Raspberry Pi z webového prohlížeče. Odkudkoli. Zdarma. Zatím v beta verzi. Detaily v dokumentaci.

    Ladislav Hagara | Komentářů: 7
    8.5. 12:55 | Nová verze

    Byla vydána verze R14.1.2 desktopového prostředí Trinity Desktop Environment (TDE, fork KDE 3.5). Přehled novinek v poznámkách k vydání, podrobnosti v seznamu změn.

    JZD | Komentářů: 0
    7.5. 18:55 | IT novinky

    Dnešním dnem lze již také v Česku nakupovat na Google Store (telefony a sluchátka Google Pixel).

    Ladislav Hagara | Komentářů: 10
    Podle hypotézy Mrtvý Internet mj. tvoří většinu online interakcí boti.
     (65%)
     (7%)
     (13%)
     (15%)
    Celkem 167 hlasů
     Komentářů: 11, poslední 10.5. 18:00
    Rozcestník

    Dotaz: shell, skript, rychlost.

    10.12.2004 08:32 JaSel | skóre: 17 | blog: kseles
    shell, skript, rychlost.
    Přečteno: 454×
    Zdravim, resim nasledujici problem. Jako vystup z mericiho pristroje (DMA) mam textovy soubor visco.dat, ktery v podstate obsahuje tri sloupce ciselnych dat. Je v nem zapsano celkem 285 skenu po 2048 radcich, oddelenych vzdycky 5 radky balastu. Velikost souboru je asi 20MiB.
    bash-2.05b$ wc visco.dat
    585105 1754175 19876543 visco.dat
    Potreboval bych jako vystup soubor visco.txt, zbaveny toho balastu, aby v nem zbyly jenom ty cisla. Zaroven (pro jistotu, kdyby ten vysledek byl tak velky, ze by ho nasledne Octave neschroupla -- neznam limity Octave, takze jistota je jistota), bych chtel jako vystup rozdeleny do 285 souboru podle tech skenu. Napsal jsem si na to nasledujici skript: #!/bin/bash

    # Sortovani viskozitnich dat z DMA
    # vzdycky 5 radku srotu a 2048 radku dat;
    # v souboru visco.dat, celkem 285x
    rm c
    declare -i a b c;
    a=0;
    until [ $a = 285 ]; do
    echo $a
    b=0;
    until [ $b = 2048 ]; do
    c=2053*a+b+6;
    sed -ne "$c p" visco.dat >> visco.$a;
    sed -ne "$c p" visco.dat >> visco.txt;
    b=b+1;
    done
    a=a+1;
    done
    Skript jsem spustil vcera odpoledne a dneska rano jsem ocekaval vysledek. Prave ted je to nekde u 55. skenu, takze je hotova asi jedna petina. To se mi zda pomerne pomale (Athlon 750MHz, 320MiB RAM, Slackware 9.1, kernel 2.6.9, reiserfs). Podel top basti skript okolo 0.3 % CPU i RAM, sed mezi 2-20 % CPU a cca 5 % RAM. Predpokladam, ze podobnou ulohu budu resit casteji, tak bych se chtel zeptat, jestli nekoho nenapada, jak to trochu urychlit. DMA masina vychrli tenhle soubor dat asi po hodine mereni a to je jeden vzorek. Mozna by to chtelo postavit se k tomu problemu uplne jinak, ja jsem vychazel z toho, co uz znam (a toho neni v oblasti programovani a psani skriptu mnoho). Dik za rady, JS

    Odpovědi

    10.12.2004 09:56 unchallenger | skóre: 69 | blog: unchallenger
    Rozbalit Rozbalit vše Re: shell, skript, rychlost.
    To je fakt drsné řešení ;-) Navíc se děsím, co udělá řádek c=2053*a+b+6; (hint: shell nevyhodnocuje aritmetické výrazy ,jen tak`)

    Jde to řešit různě, řešení asi ideově nejpodobnější tvému vypadá (nazvěme to v.sed):
    #!/bin/sed -nf
    1,2048 wvisco.1
    2049,2052 wvisco.txt
    2053,4100 wvisco.2
    4101,4105 wvisco.txt
    ...
    
    které použiješ
    ./v.sed <visco.dat
    
    Samozřejmě, že v.sed je sám také generovatelný, což uděláš jednou nebo když se změní počty.
    10.12.2004 10:24 unchallenger | skóre: 69 | blog: unchallenger
    Rozbalit Rozbalit vše Re: shell, skript, rychlost.
    Špatně jsem si přečetl zadání. No stejně to bylo kvadratické.
    #!/usr/bin/python
    import sys
                                          # Zdravím Leoše a děkuji mu za P tagy
    base = 'visco'
    nd = 2048
    nt = 5
                                          # Zdravím Leoše a děkuji mu za P tagy
    i = 0
    for line sys.stdin:
        if i % (nd + nt) == 0:
            fi = file(base + ('.%03d' % (i/(nd + nt) + 1)), 'w')
        if i % (nd + nt) < nd:
            fi.write(line)
        i += 1
    
    Spojit výsledky catem snad zvládneš.
    10.12.2004 10:13 MOJE
    Rozbalit Rozbalit vše Re: shell, skript, rychlost.
    smarja pano :-)
    to bude mockrat projity soubor. Co zkusit misto sedu pouzit proste read a ten soubor tomu skriptu nacpat na standardni vstup. pak ten algoritmus bude vypadat priblizne takhle:
    for((i=0;i<285;i++)); do
    #nejdriv prectu balast
      for((j=0;j<5;j++)); do
         read radek;
      done 
    #pak uzitecne radky
      for((j=0;j<2048;j++)); do
         read radek;
         echo $radek >>visco.$i
         echo $radek >>visco.txt
      done
    done
    
    Rekl bych, ze tohle to opravdu dokaze "trochu" urychlit
    10.12.2004 10:23 MOJE
    Rozbalit Rozbalit vše Re: shell, skript, rychlost.
    Jo a jen tak na otestovani na Athlon64 2800 to trvalo necele 2 minuty. Napsane v C by to bylo samozrejme daleko rychlejsi, ale to ma asi cenu tak od 10000 radku na mereni.
    10.12.2004 12:00 JaSel | skóre: 17 | blog: kseles
    Rozbalit Rozbalit vše Re: shell, skript, rychlost.
    Diky za napady.

    Vezmu to poporade. Radek c=2053*a+b+6; jsem odzkousel, pocita mi cisla radku, ktere me zajimaji. Python vubec neznam (resp. vim, ze existuje), takze me to nenapadlo. Nejvice se mi libi to posledni reseni -- jeste jednou diky, vyzkousim.

    JS
    29.12.2004 04:56 Honza_S
    Rozbalit Rozbalit vše Re: shell, skript, rychlost.
    Kdysi jsem provadel filtrovani textu o velikosti cca 10-50MB textu. Vysledek na P3/950Mhz a 128MB RAM byl kolem 20-50 sekund v jazyce C. Pricemz jsem si vsimnul zajimave veci: texty jsem nechal default zkomprimovat pomoci gzipu - velikost pak byla 3x - 4x mensi, cas zpracovani se zmensil na cca 7-10 sekund (pochopitelne bez casu nutneho ke komprimaci) u puvodniho text. souboru o velikosti 30MB.

    Z jineho soudku: na svem serveru mam v provozu php stranku, kde je moznost zobrazeni datoveho provozu za posledni 3 dny (Asi 1000 poslednich radku textoveho logu). Doba zpracovani v bash-i trva asi 7 sekund (generovani grafu), pro prepsani do C tato operace je temer okamzite <0.1s.

    Doporucuji u takovychto "silovych" operaci jazyk C, pripadne pouziti zlib, pokud je nutnost opakovaho filtrovani - i pro usporu mista.

    Honza

    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.