Vývojáři KDE na Mastodonu oznámili vydání balíku aplikací KDE Gear 26.08. Přehled novinek i s náhledy a videi v oficiálním oznámení.
Společnost PINE64 kvůli nedostatku a vysokým cenám DRAM a eMMC dočasně pozastavuje výrobu linuxových zařízení. Výroba zařízení jako PineTime, PineVoice a Pinecil pokračuje.
Společnost Stripe se dohodla na akvizici společnosti OpenRouter. Za 7,5 miliardy dolarů.
Byla vydána nová verze 1.27 programovacího jazyka Go (Wikipedie). Přehled novinek v poznámkách k vydání.
V pátek 28. srpna se v Praze uskuteční již osmý Mobile Linux Hackday. Jako obvykle se potkáme v pražské pobočce SUSE v Karlíně na Křižíkově, takže kromě mobilního Linuxu je to tentokrát i příležitost přijít se podívat na nově zrekonstruované kanceláře. Začínáme v 10:00, ale dorazit můžete samozřejmě kdykoliv v průběhu dne. Setkáním vás provede David Heidelberg, vývojář GPU ovladačů v Mesa 3D a jeden z hlavních lidí české komunity kolem … více »
Představen byl Raspberry Pi Compute Module 5 Programming Jig. Jedná se o zařízení umožňující připravit Compute Module 5 do plně funkčního stavu bez nutnosti použití dalších vstupně / výstupních desek. Podporuje automatizaci pomocí nástroje rpi-sb-provisioner. Podrobnosti v dokumentaci.
Hackeři ve Francii ukradli data více než půl milionu daňových poplatníků. Je to jeden z největších hackerských útoků v dějinách země. O útoku z konce června informovala až teď daňová správa. Teprve od pondělí dotčeným občanům zasílá e-maily s instrukcemi, jak postupovat dál. Hackeři se sice nedostanou k penězům dotyčných, hrozí ale věrohodné podvody. Hackeři získali třeba celá jména, údaje o rodinných příslušnících nebo také údaje o
… více »Společnost Framework představila nový Framework Laptop 12 s Intel Core Series 3, Thunderbolt 4, Wi-Fi 7, volitelnou čtečkou otisků prstů a podsvícenou klávesnicí s open-source firmwarem ZMK. Objednat lze s předinstalovanou Fedorou 44 KDE Plasma.
Byl vydán Mozilla Firefox 154.0. Přehled novinek v poznámkách k vydání a poznámkách k vydání pro vývojáře. Řešeny jsou rovněž bezpečnostní chyby. Nový Firefox 154 bude brzy k dispozici také na Flathubu a Snapcraftu.
Nové číslo časopisu Raspberry Pi zdarma ke čtení: Raspberry Pi Official Magazine 168 (pdf).
header(). Pokud se už cokoli vypsalo, nepůjde to.
Obvykle je pro PHP k dispozici 32-128 MB RAM. Pokud těch dat nemáš víc, nemusíš to řešit a můžeš to udělat tak, jak ti to zrovna vyhovuje. Tak, aby se ti to dobře udržovalo. Mně víc vyhovuje naskládat data do proměnných a pak je jednou šablonou vypsat.
Zpracování celého webu: ProcessingTime: 0.00155 s. // při použití přímo echa Zpracování celého webu: ProcessingTime: 0.00820 s. // při uložení dat do proměnných s pozdějším vypsáním
Debugování kódu: půl dne // při použití přímo echa Debugování kódu: deset minut // při uložení dat do proměnných s pozdějším vypsánímpráce procesoru je daleko levnější, měl bys psát hlavně takovej kód se kterým se bude dobře pracovat tobě
práce procesoru je daleko levnější, měl bys psát hlavně takovej kód se kterým se bude dobře pracovat toběJenže hezké, krátké, a rychlé algoritmy se vzájemně nevylučují. Je dobré si předem zjistit na předpokládané množině dat, který algoritmus je efektivnější a ten používat. Od chvíle, kdy jsem zjistil, že databáze jsou rychlejší (a hlavně spolehlivější), než vlastní ukládání dat a že XSLT je daleko rychlejší než Smarty, nemám důvod používat jiné technologie.
Od chvíle, kdy jsem zjistil, že databáze jsou rychlejší (a hlavně spolehlivější), než vlastní ukládání datErm… :).
__toString(), OB se moc použít nedá. Na druhou stranu se dá přímo použít v Heredoc, takže to zas tak pomalé není.
Pokud má mít takový overhead, že je echo() dvakrát za sebou znatelně pomalejší než vypsání toho samého najednouSkutečné odeslání dat po TCP nadvakrát má z principu overhead proti odeslání najednou. Dá se to optimalizovat, pokud bufferuješ a zároveň se dá zajistit odezva, pokud bufferuješ s nějakým časovým limitem. Tuším, že se o tom v poslední době docela dost psalo. Ale rozhodně to nemá nic společného s optimalizacemi programovacího jazyka, pokud teda nechceš, aby ti slučoval výstupní operace už na úrovni kódu. Ale to je značně netriviální operace, když si uvědomíš, že se jedná o systémové volání. Režie spojování řetězců by měla být nejmenší, pokud je spojuješ najednou. Proto se třeba v Pythonu občas optimalizuje výstup tak, že se vše ukládá do pole a to se později nechá spojit celé. Ale to samé se používá i na nejnižší úrovni, když chceš hardcore optimalizaci odeslání nesouvislého bloku dat. Stačí si najít například iovec, sendmsg a recvmsg. Ale to jsou všechno optimalizace na úrovni samotného programu a zpracování a nedají se moc dohnat automatickým optimalizérem.
__toString().
echo $a[0],$a[1],$a[2],…

<?php
date_default_timezone_set('Europe/Prague');
function getTime(){
list($usec, $sec) = explode(" ", microtime());
return ((float)$usec + (float)$sec);
}
define("ITEMS", 10);
define("STRSTEPS", 6);
define("STEPS", 10000);
$hstart='<span style="display: none;">TEXT:';
$hend='</span>';
$a = array();
for($i=0;$i < ITEMS;$i++){
$a[] = str_shuffle(str_repeat('ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789',STRSTEPS));
}
$start = getTime();
echo $hstart;
for($i=0;$i<STEPS;$i++){
foreach($a as $v){
print $v;
}
}
echo $hend;
$time = getTime() - $start;
echo "\n<br />*TIME foreach : $time<br />\n";
$start = getTime();
echo $hstart;
for($i=0;$i<STEPS;$i++){
for($j=0;$j < ITEMS;$j++){
print $a[$j];
}
}
echo $hend;
$time = getTime() - $start;
echo "\n<br />*TIME for : $time<br />\n";
$start = getTime();
echo $hstart;
for($i=0;$i<STEPS;$i++){
echo implode($a);
}
echo $hend;
$time = getTime() - $start;
echo "\n<br />*TIME implode(): $time<br />\n";
$start = getTime();
echo $hstart;
for($i=0;$i<STEPS;$i++){
$pomstr='';
for($j=0;$j < ITEMS;$j++)
$pomstr.=$a[$j];
echo $pomstr;
}
echo $hend;
$time = getTime() - $start;
echo "\n<br />*TIME pomstr.= : $time<br />\n";
$start = getTime();
echo $hstart;
for($i=0;$i<STEPS;$i++){
echo $a[0].$a[1].$a[2].$a[3].$a[4].$a[5].$a[6].$a[7].$a[8].$a[9];
}
echo $hend;
$time = getTime() - $start;
echo "\n<br />*TIME .[]. : $time<br />\n";
$start = getTime();
echo $hstart;
for($i=0;$i<STEPS;$i++){
echo $a[0],$a[1],$a[2],$a[3],$a[4],$a[5],$a[6],$a[7],$a[8],$a[9];
}
echo $hend;
$time = getTime() - $start;
echo "\n<br />*TIME [] : $time<br />\n";
Spuštěné: php kuk.php > kuk && grep '*' kukto dalo (na slabší mašince):
<br />*TIME foreach : 0.46209192276001<br /> <br />*TIME for : 0.98375391960144<br /> <br />*TIME implode(): 0.20939517021179<br /> <br />*TIME pomstr.= : 2.4737629890442<br /> <br />*TIME .[]. : 2.3295640945435<br /> <br />*TIME [] : 2.6475369930267<br />…jen u posledních dvou jsem to čekal obráceně…
*TIME foreach : 2.6435630321503 *TIME for : 2.9650778770447 *TIME implode(): 1.3122179508209 *TIME pomstr.= : 4.6817560195923 *TIME .[]. : 2.4447479248047 *TIME [] : 2.0510191917419Na obou mašinách však zvítězila funkce
implode(). S využitím output bufferingu však výsledky dopadly trochu jinak:
*TIME foreach : 0.4439480304718 *TIME for : 0.48819804191589 *TIME implode(): 0.56835508346558 *TIME pomstr.= : 1.8790969848633 *TIME .[]. : 1.9683930873871 *TIME [] : 0.52422690391541a zde už zvítězil cyklus.
'AMD Athlon(tm) Processor LE-1640'.
*TIME foreach : 0.50749897956848
*TIME for : 0.50337791442871
*TIME implode(): 0.50320887565613
*TIME pomstr.= : 0.49960994720459
*TIME .[]. : 0.5042028427124
*TIME [] : 0.49123191833496
zatimco pres cli
*TIME foreach : 0.23669791221619
*TIME for : 0.24331903457642
*TIME implode(): 0.13928508758545
*TIME pomstr.= : 0.11431002616882
*TIME .[]. : 0.10860085487366
*TIME [] : 0.23174500465393
jsem teda cekal, ze to dopadne jinak (nehlede na to, ze je to sice serverova masina, ale s dost velkym loadem :) )
*TIME foreach : 0.50749897956848
*TIME for : 0.50337791442871
*TIME implode(): 0.50320887565613
*TIME pomstr.= : 0.49960994720459
*TIME .[]. : 0.5042028427124
*TIME [] : 0.49123191833496
*TIME foreach : 0.23669791221619
*TIME for : 0.24331903457642
*TIME implode(): 0.13928508758545
*TIME pomstr.= : 0.11431002616882
*TIME .[]. : 0.10860085487366
*TIME [] : 0.23174500465393
Tiskni
Sdílej: