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í
×
    včera 16:44 | Komunita

    Dnes v 17:30 bude oficiálně vydána open source počítačová hra DOGWALK vytvořena v 3D softwaru Blender a herním enginu Godot. Release party proběhne na YouTube od 17:00.

    Ladislav Hagara | Komentářů: 3
    včera 14:55 | Humor

    McDonald's se spojil se společností Paradox a pracovníky nabírá také pomocí AI řešení s virtuální asistentkou Olivii běžící na webu McHire. Ian Carroll a Sam Curry se na toto AI řešení blíže podívali a opravdu je překvapilo, že se mohli přihlásit pomocí jména 123456 a hesla 123456 a získat přístup k údajům o 64 milionech uchazečů o práci.

    Ladislav Hagara | Komentářů: 9
    včera 00:11 | Nová verze

    Byla vydána (𝕏) červnová aktualizace aneb nová verze 1.102 editoru zdrojových kódů Visual Studio Code (Wikipedie). Přehled novinek i s náhledy a videi v poznámkách k vydání. Ve verzi 1.102 vyjde také VSCodium, tj. komunitní sestavení Visual Studia Code bez telemetrie a licenčních podmínek Microsoftu.

    Ladislav Hagara | Komentářů: 0
    10.7. 21:00 | Bezpečnostní upozornění

    Byla vydána nová verze 2.4.64 svobodného multiplatformního webového serveru Apache (httpd). Řešeno je mimo jiné 8 bezpečnostních chyb.

    Ladislav Hagara | Komentářů: 4
    10.7. 15:22 | Nová verze

    Společnost xAI na síti 𝕏 představila Grok 4, tj. novou verzi svého AI LLM modelu Grok.

    Ladislav Hagara | Komentářů: 12
    10.7. 12:55 | Bezpečnostní upozornění

    Ministerstvo vnitra odhalilo závažný kyberincident v IT systému resortu. Systém, do kterého se dostal útočník bez oprávnění, byl odpojen a nedošlo k odcizení dat [𝕏].

    Ladislav Hagara | Komentářů: 16
    10.7. 11:55 | Humor

    Před rokem byla streamovací služba HBO Max přejmenována na Max. Dle managementu slovo HBO v názvu nebylo důležité. Včera byl Max přejmenován zpět na HBO Max. Kolik milionů dolarů to stálo? 😂

    Ladislav Hagara | Komentářů: 13
    10.7. 02:11 | Nová verze

    Byla vydána nová major verze 8.0.0 svobodného systému pro detekci a prevenci průniků a monitorování bezpečnosti počítačových sítí Suricata (Wikipedie). Přehled novinek v oficiálním oznámení a v aktualizované dokumentaci.

    Ladislav Hagara | Komentářů: 0
    10.7. 01:11 | Nová verze

    Mastodon (Wikipedie) - sociální síť, která není na prodej - byl vydán ve verzi 4.4. Přehled novinek s náhledy a videi v oznámení na blogu.

    Ladislav Hagara | Komentářů: 1
    10.7. 00:11 | IT novinky

    Instituce státní správy nebudou smět využívat produkty, aplikace, řešení, webové stránky a webové služby poskytované čínskou společností DeepSeek. Na doporučení Národního úřadu pro kybernetickou a informační bezpečnost rozhodla o jejich zákazu vláda Petra Fialy na jednání ve středu 9. července 2025.

    Ladislav Hagara | Komentářů: 8
    Jaký je váš oblíbený skriptovací jazyk?
     (59%)
     (27%)
     (7%)
     (3%)
     (1%)
     (1%)
     (4%)
    Celkem 388 hlasů
     Komentářů: 16, poslední 8.6. 21:05
    Rozcestník

    Dotaz: Co je shnilého na operátoru rozsahu v Perlu ?

    15.12.2006 22:36 amnesiac
    Co je shnilého na operátoru rozsahu v Perlu ?
    Přečteno: 106×
    V jednom programu potřebuju uložit pole do hashe, kde klíče v hashi jsou poziční indexy a hodnoty pak hodnoty z pole. Problém nastává u rozsáhlých polí. Následující triviální kód posílá systém do kolen, resp. swapuje i při 512MB volný paměti, což se mi zdá hodně nepřiměřený.

    @indexy = ( 1 .. 10e6 )

    Ekvivalent v Pythonu přitom proběhne bez swapování a za zlomek času. A to nepoužívám fci xrange.

    indexy = range(1, 10e6)

    Pro úplnost ta konstrukce z programu

    # pole @primes obsahuje cca 5 mil. celočíselných hodnot
    @hash{ (1 .. $#primes + 1) } = @primes

    Perl v5.8.8

    Je ta ukrutná spotřeba paměti bug ? Lze to obejít bez použití cyklu ?

    Odpovědi

    15.12.2006 23:54 b0rmann | skóre: 15 | Pardubice
    Rozbalit Rozbalit vše Re: Co je shnilého na operátoru rozsahu v Perlu ?
    A co tak?

    %hash=map {++$i=>$_} @primes;
    --- Gott strafe Amerika
    16.12.2006 10:16 Hynek (Pichi) Vychodil | skóre: 43 | blog: Pichi | Brno
    Rozbalit Rozbalit vše Re: Co je shnilého na operátoru rozsahu v Perlu ?
    Na každý skalár v perlu se alokuje něco kolem 40byte + nějaké ta režije pole a jste na 44byte na prvek v desetimiliónprvkovém poli.
     1528 hynek      9   0  613m 449m 142m S  0.0 89.3   0:11.86 perl
    Narozdíl od pythonu to opravdu není nijak optimalizované. Na efektivní práci s takovými strukturami jsou vec, případně Int::BigVec a pod. Stejně mi ale uniká, proč to děláte. Rychlost přístupu $hash{$cislo} není lepší než $primes[$cislo]. Pochopil bych opačný postup @hash{@primes} = (); a test typu $isPrime = exists $hash{$cislo};
    XML je zbytečný, pomalý, nešikovný balast, znovu vynalézané kolo a ještě ke všemu šišaté, těžké a kýčovitě pomalované.
    16.12.2006 10:17 Hynek (Pichi) Vychodil | skóre: 43 | blog: Pichi | Brno
    Rozbalit Rozbalit vše Re: Co je shnilého na operátoru rozsahu v Perlu ?
    s/Int::BigVec/Int::BitVec/
    XML je zbytečný, pomalý, nešikovný balast, znovu vynalézané kolo a ještě ke všemu šišaté, těžké a kýčovitě pomalované.
    16.12.2006 11:26 amnesiac
    Rozbalit Rozbalit vše Re: Co je shnilého na operátoru rozsahu v Perlu ?
    Díky moc.

    Co mi ale není furt jasný, že následující konstrukce s multiplikátorem má spotřebu paměti daleko menší ?! Proto jsem viděl problém v operátoru .. .

    perl -lwe '@indexy = (10e6) x 10e6; print $pole[10e6-1]'
    
    a výstup ps těsně před skončením
    
    ps -o pid,cmd,size,rss,vsz -C perl
      PID CMD                            SZ   RSS    VSZ
    20215 perl -lwe @pole = (10e6) x  299332 273532 303976
    
    16.12.2006 11:34 amnesiac
    Rozbalit Rozbalit vše Re: Co je shnilého na operátoru rozsahu v Perlu ?
    Grrr. Samozřejmě mělo být:

    perl -lwe '@indexy = (10e6) x 10e6; print $indexy[10e6-1]'
    
    a
    
    ps -o pid,cmd,size,rss,vsz -C perl
      PID CMD                            SZ   RSS    VSZ
    20215 perl -lwe @indexy = (10e6) x  299332 273532 303976

    Sorry.

    16.12.2006 12:34 amnesiac
    Rozbalit Rozbalit vše Re: Co je shnilého na operátoru rozsahu v Perlu ?
    Ještě varianta přes cyklus:

    perl -le 'for ($i=1; $i <= 10e6; $i++) { push @pole,$i; } print $pole[10e6-1]'
    
    ps -o pid,cmd,size,rss,vsz -C perl
      PID CMD                            SZ   RSS    VSZ
    24054 perl -le for ($i=1; $i <= 10 234804 235548 239448

    Taky vezme výrazně míň paměti.

    16.12.2006 16:46 Hynek (Pichi) Vychodil | skóre: 43 | blog: Pichi | Brno
    Rozbalit Rozbalit vše Re: Co je shnilého na operátoru rozsahu v Perlu ?
    Takže problém bude asi, že to pole se vytvoří vlastně dvakrát, jednou ho udělá operátor .. a pak se ještě skopíruje do cílového pole. Při plnění do hashe to udělá dokonce čtyřikrát. Asi bude nejlepší, když to prostě nebudete dělat. On si naalokuje tu paměť a potom ji neuvolní. Myslím tím do systému, pro perl je samozřejmě volná. Jinak, když dělám podobné testy, tak používám oneliner typu
    perl -le '@hash{1..5e6} = (1..5e6); print "Hotovo"; sleep'
    Nemusíte to potom nijak odchytávat :-)
    XML je zbytečný, pomalý, nešikovný balast, znovu vynalézané kolo a ještě ke všemu šišaté, těžké a kýčovitě pomalované.
    16.12.2006 14:20 Petr Zelenka | skóre: 24 | Semice/Stuttgart (Sindelfingen)
    Rozbalit Rozbalit vše Re: Co je shnilého na operátoru rozsahu v Perlu ?
    V jednom programu potřebuju uložit pole do hashe, kde klíče v hashi jsou poziční indexy a hodnoty pak hodnoty z pole.

    Jestli tomu správně rozumím, tak chcete nahradit konstrukci typu pole[index] konstrukcí hash[klíč]. Můžu se zeptat proč? V čem je pro vás hash lepší? Beztak budete tou hashí jen suplovat funkčnost pole, nebo se pletu?

    A teď si uvědomte, jaký je vztah mezi krychlí a motýlem.

    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.