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í
×
eParkomat, startup z ČR, postoupil mezi finalisty evropského akcelerátoru ChallengeUp!
Robot na pivo mu otevřel dveře k opravdovému byznysu
Internet věcí: Propojený svět? Už se to blíží...
dnes 16:00 | Nová verze

Byla vydána verze 0.98 svobodného nelineárního video editoru Pitivi. Z novinek lze zmínit například přizpůsobitelné klávesové zkratky. Videoukázka práce s nejnovější verzí Pitivi na YouTube.

Ladislav Hagara | Komentářů: 0
dnes 15:00 | Zajímavý software

Stop motion je technika animace, při níž je reálný objekt mezi jednotlivými snímky ručně upravován a posouván o malé úseky, tak aby po spojení vyvolala animace dojem spojitosti. Jaký software lze pro stop motion použít na Linuxu? Článek na OMG! Ubuntu! představuje Heron Animation. Ten bohužel podporuje pouze webové kamery. Podpora digitálních zrcadlovek je začleněna například v programu qStopMotion.

Ladislav Hagara | Komentářů: 1
včera 21:21 | Nová verze Ladislav Hagara | Komentářů: 0
včera 11:44 | Zajímavý projekt

Na Indiegogo byla spuštěna kampaň na podporu herní mini konzole a multimediálního centra RetroEngine Sigma od Doyodo. Předobjednat ji lze již od 49 dolarů. Požadovaná částka 20 000 dolarů byla překonána již 6 krát. Majitelé mini konzole si budou moci zahrát hry pro Atari VCS 2600, Sega Genesis nebo NES. Předinstalováno bude multimediální centrum Kodi.

Ladislav Hagara | Komentářů: 0
včera 00:10 | Nová verze

Byla vydána verze 4.7 redakčního systému WordPress. Kódové označením Vaughan bylo vybráno na počest americké jazzové zpěvačky Sarah "Sassy" Vaughan. Z novinek lze zmínit například novou výchozí šablonu Twenty Seventeen, náhledy pdf souborů nebo WordPress REST API.

Ladislav Hagara | Komentářů: 4
6.12. 12:00 | Zajímavý projekt

Projekt Termbox umožňuje vyzkoušet si linuxové distribuce Ubuntu, Debian, Fedora, CentOS a Arch Linux ve webovém prohlížeči. Řešení je postaveno na projektu HyperContainer. Podrobnosti v často kladených dotazech (FAQ). Zdrojové kódy jsou k dispozici na GitHubu [reddit].

Ladislav Hagara | Komentářů: 27
6.12. 11:00 | Bezpečnostní upozornění

Byly zveřejněny informace o bezpečnostní chybě CVE-2016-8655 v Linuxu zneužitelné k lokální eskalaci práv. Chyba se dostala do linuxového jádra v srpnu 2011. V upstreamu byla opravena minulý týden [Hacker News].

Ladislav Hagara | Komentářů: 2
5.12. 22:00 | Komunita

Přibližně před měsícem bylo oznámeno, že linuxová distribuce SUSE Linux Enterprise Server (SLES) běží nově také Raspberry Pi 3 (dokumentace). Obraz verze 12 SP2 pro Raspberry Pi 3 je ke stažení zdarma. Pro registrované jsou po dobu jednoho roku zdarma také aktualizace. Dnes bylo oznámeno, že pro Raspberry Pi 3 je k dispozici také nové openSUSE Leap 42.2 (zprávička). K dispozici je hned několik obrazů.

Ladislav Hagara | Komentářů: 6
5.12. 06:00 | Zajímavý software

OMG! Ubuntu! představuje emulátor terminálu Hyper (GitHub) postavený na webových technologiích (HTML, CSS a JavaScript). V diskusi k článku je zmíněn podobný emulátor terminálu Black Screen. Hyper i Black Screen používají framework Electron, stejně jako editor Atom nebo vývojové prostředí Visual Studio Code.

Ladislav Hagara | Komentářů: 50
5.12. 06:00 | Zajímavý článek

I letos vychází řada ajťáckých adventních kalendářů. QEMU Advent Calendar 2016 přináší každý den nový obraz disku pro QEMU. Programátoři se mohou potrápit při řešení úloh z kalendáře Advent of Code 2016. Kalendáře Perl Advent Calendar 2016 a Perl 6 Advent Calendar přinášejí každý den zajímavé informace o programovacím jazyce Perl. Stranou nezůstává ani programovací jazyk Go.

Ladislav Hagara | Komentářů: 10
Kolik máte dat ve svém domovském adresáři na svém primárním osobním počítači?
 (32%)
 (24%)
 (29%)
 (7%)
 (5%)
 (3%)
Celkem 795 hlasů
 Komentářů: 50, poslední 29.11. 15:50
Rozcestník
Reklama

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: 59×
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.