Byla vydána OpenIndiana 2026.10. Unixový operační systém OpenIndiana (Wikipedie) vychází z OpenSolarisu (Wikipedie).
Americký výrobce polovodičů onsemi (ON Semiconductor) zrušil plány na rozšíření výroby v rožnovském závodě v Česku za dvě miliardy dolarů (podle aktuálního kurzu zhruba 43,5 mld. Kč). Důvodem je vývoj na trhu.
O víkendu probíhá na FIT VUT v Brně konference OpenAlt 2026 o otevřeném softwaru a datech, IT bezpečnosti, DIY a IoT. Na programu je spousta zajímavých přednášek. Pokud jste v Brně, stavte se. Vstup zdarma. Přednášky lze sledovat i online na VHSky a YouTube.
Qualcomm uzavřel víceletou dohodu se SpaceX. Bude dodávat rádiové technologie, baseband jednotky a software pro plánovanou pozemní 5G síť Starlink Mobile. Výstavba má zahrnovat desítky tisíc základnových stanic v USA. Zahájení nasazování se očekává v roce 2027. Qualcomm dohodu označuje za svůj dosud největší 5G kontrakt.
Google rozšířil Cloud Vulnerability Reward Program. Nově nabízí odměnu až 250 tisíc dolarů za vysoce závažné architektonické bezpečnostní chyby označované jako Root-in-Cloud.
V březnu byla oznámena spolupráce GrapheneOS s Motorolou. Nejnovější vlajka Motorola Signature 27 je první Motorola s oficiální podporou GrapheneOS. GrapheneOS (Wikpedie) je varianta Androidu zaměřující se na bezpečnost a soukromí.
Omarchy (Wikipedie) je linuxová distribuce s dlaždicovým správcem oken Hyprland. Založena je na Arch Linuxu. Vydána byla v nové verzi 4.5.0. Nově také pro Apple Silicon, konkrétně pro M1/M2/M3/Neo MacBooky.
Byla vydána nová stabilní verze 8.3 webového prohlížeče Vivaldi (Wikipedie). Postavena je na Chromiu 156 s bezpečnostními opravami z Chromia 157. Přehled novinek i s náhledy v příspěvku na blogu.
@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 ?
%hash=map {++$i=>$_} @primes;
1528 hynek 9 0 613m 449m 142m S 0.0 89.3 0:11.86 perlNarozdí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};
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ímps -o pid,cmd,size,rss,vsz -C perl PID CMD SZ RSS VSZ 20215 perl -lwe @pole = (10e6) x 299332 273532 303976
perl -lwe '@indexy = (10e6) x 10e6; print $indexy[10e6-1]'aps -o pid,cmd,size,rss,vsz -C perl PID CMD SZ RSS VSZ 20215 perl -lwe @indexy = (10e6) x 299332 273532 303976
Sorry.
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.
.. 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
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?
Tiskni
Sdílej: