Byla vydána (𝕏) nová verze 24.7 open source firewallové a routovací platformy OPNsense (Wikipedie). Jedná se o fork pfSense postavený na FreeBSD. Kódový název OPNsense 24.7 je Thriving Tiger. Přehled novinek v příspěvku na fóru.
Binarly REsearch upozorňuje na bezpečnostní problém PKFail (YouTube) v ekosystému UEFI. Stovky modelů zařízení používají pro Secure Boot testovací Platform Key vygenerovaný American Megatrends International (AMI) a jeho privátní část byla při úniku dat prozrazena. Do milionů zařízení (seznam v pdf) po celém světě tak útočníci mohou do Secure Bootu vložit podepsaný malware. Otestovat firmware si lze na stránce pk.fail. Ukázka PoC na Linuxu na Windows na YouTube.
Mobilní operační systém /e/OS (Wikipedie) založený na Androidu / LineageOS, ale bez aplikací a služeb od Googlu, byl vydán ve verzi 2.2 (Mastodon, 𝕏). Přehled novinek na GitLabu. Vypíchnuta je rodičovská kontrola.
Společnost OpenAI představila vyhledávač SearchGPT propojující OpenAI modely umělé inteligence a informace z webů v reálném čase. Zatím jako prototyp pro vybrané uživatele. Zapsat se lze do pořadníku čekatelů.
Distribuce Linux Mint 22 „Wilma“ byla vydána. Je založená na Ubuntu 24.04 LTS, ale s desktopovým prostředím Cinnamon (aktuálně verze 6.2), příp. MATE nebo Xfce, balíkem aplikací XApp, integrací balíčků Flatpak a dalšími změnami. Více v přehledu novinek a poznámkách k vydání.
Příspěvek na blogu Truffle Security: Kdokoli může přistupovat ke smazaným a privátním repozitářům na GitHubu.
Byla vydána nová verze 14 integrovaného vývojového prostředí (IDE) Qt Creator. Podrobný přehled novinek v cgitu. Vypíchnout lze podporu rozšíření v Lua.
Byla vydána verze 1.80.0 programovacího jazyka Rust (Wikipedie). Podrobnosti v poznámkách k vydání. Vyzkoušet Rust lze například na stránce Rust by Example.
Apple oznámil, že v beta verzi spustil své Apple Maps na webu. Podporován je také webový prohlížeč Chrome. Ne však na Linuxu.
Portál Stack Overflow po roce opět vyzpovídal své uživatele, jedná se především o vývojáře softwaru, a zveřejnil detailní výsledky průzkumu. Průzkumu se letos zúčastnilo více než 65 tisíc vývojářů. Z Česka jich bylo 710. Ze Slovenska 246.
count()
vždy vrátit do proměnné a a pak používat její hodnotu, a tvrdím si říct, že vždy spočítá prvky znovu (jednoduchým testem pomocí for
dojdete ke stejnému závěru).a tvrdím si říct, že vždy spočítá prvky znovuNe.
jednoduchým testem pomocí for dojdete ke stejnému závěruCo?
Zdrojáky PHPAhá...
Ne. Co? Ahá...To sme sa toho od Teba teda veľa dozvedeli... Na prvý pohľad by sa videlo logické, ak by si PHP udržiavalo prehľad o presnom počte prvkov v poli a pri volaní count() len toto číslo vrátilo. Bohužiaľ, z nejakého dôvodu PHP naozaj zakaždým keď sa volá count() fyzicky preráta počet prvkov v poli. (Overené v zdrojákoch PHP: /ext/standard/array.c) Takže je lepšie a rýchlejšie volať count() len raz, odložiť si ho do premennej a používať ho odtiaľ (ak daný cyklus nemení počet prvkov toho poľa). Jednoduchým testom by si naozaj došiel ku rovnakému záveru.
<?php ini_set("memory_limit","512M"); function microtime_float() { list($usec, $sec) = explode(" ", microtime()); return ((float)$usec + (float)$sec); } echo "Fill array\n"; $start = microtime_float(); $a = array(); $max = 2000000; for($i=0;$i<$max;$i++) $a[] = $i; echo microtime_float() - $start,"\n\n"; echo "Read for with i and count\n"; $start = microtime_float(); $r=0; for($i=0;$i<count($a);$i++) $r+=$a[$i]; echo $r,"\n"; echo microtime_float() - $start,"\n\n"; echo "Read for with i\n"; $start = microtime_float(); $r=0; $cnt = count($a); for($i=0;$i<$cnt;$i++) $r+=$a[$i]; echo $r,"\n"; echo microtime_float() - $start,"\n\n"; echo "Read foreach value only\n"; $start = microtime_float(); $r=0; foreach($a as $v) $r+=$v; echo $r,"\n"; echo microtime_float() - $start,"\n\n"; echo "Read foreach key → value\n"; $start = microtime_float(); $r=0; foreach($a as $k => $v) $r+=$v; echo $r,"\n"; echo microtime_float() - $start,"\n\n";
time php for.php
u mě to dá výsledek
Fill array 0.790529966354 Read for with i and count 1999999000000 0.672595024109 Read for with i 1999999000000 0.30579996109 Read foreach value only 1999999000000 0.329959869385 Read foreach key → value 1999999000000 0.351605892181 real 0m2.742s user 0m2.500s sys 0m0.224sAd. zdrojáky, ty jsou obvykle nejlepší cesta jak porozumět tomu, jak to funguje, testem zjistíme jen chování v podmínkách testu a další nám možná uniknou…
Tiskni
Sdílej: