Byla vydána nová verze 9.18 z Debianu vycházející linuxové distribuce DietPi pro (nejenom) jednodeskové počítače. Nově také pro NanoPi R3S, R3S LTS, R76S a M5. Přehled novinek v poznámkách k vydání.
bat, tj. vylepšený cat se zvýrazňováním syntaxe a integrací s gitem, byl vydán ve verzi 0.26.0.
Byla vydána první verze 0.0.1 [Mastodon] multipatformního renderovacího jádra webového prohlížeče Servo (Wikipedie). Vývoj Serva započal v roce 2012 v Mozilla Corporation. V roce 2020 bylo Servo předáno nadaci Linux Foundation. Servo je napsané v programovacím jazyce Rust.
Cloudovou službu Amazon Web Services (AWS) americké firmy Amazon dnes postihl globální výpadek. Omezil dostupnost řady aplikací a webů, například populární platformu Snapchat nebo aplikaci s prvky umělé inteligence (AI) Perplexity. Podle webu Downdetector hlásily problémy také uživatelé obchodu Amazon, streamovací platformy PrimeVideo nebo platební služby PayPal.
GNU Octave lze nově používat ve webovém prohlížeči v JupyterLite s jádrem Xeus-Octave.
Od 3. do 16. listopadu proběhnou Dny AI 2025. V úterý 11. listopadu proběhne Open source AI day v Red Hatu v Brně.
Nová čísla časopisů od nakladatelství Raspberry Pi zdarma ke čtení: Raspberry Pi Official Magazine 158 (pdf) a Hello World 28 (pdf).
Vývojáři GIMPu nově vydávají oficiální snap balíčky GIMPu. Jsou sestavovány přímo v jejich CI (Continuous Integration) systému.
Správce sbírky fotografií digiKam byl vydán ve verzi 8.8.0. Jedná se o převážně opravné vydání provázené aktualizacemi knihoven. Novinky zahrnují implicitní použití systémového barevného profilu monitoru, import/export hierarchie štítků, editační nástroj rozostření aj.
Steve Jobs a superpočítač Cray-1 budou vyobrazeny na pamětních jednodolarových mincích vyražených v příštím roce v rámci série Americká inovace. Série má 57 mincí, tj. 57 inovací. Poslední 4 mince budou vyraženy v roce 2032.
ve flamu na rootu jsem nasel krasnou vecicku o niz jsem ani netusil, ze ji gcc umi -- optimalizace podle vysledku profileru. pri beznych optimalizacich nema tradicni prekladac (nemlouvim ted o JIT kompilaci) sanci zjistit, jak ktere casti kodu budou volany casto, z jakych mist a podobne... a proste jen hada a tipuje. nicmene, pomoci vcelku zastrcenych direktiv prekladace -fprofile-generate
a -fprofile-use
jde situace velice hezky zmenit a hodne pozitivnim smerem.
-fprofile-generate
(aby se mohly generovat profilacni informace)-fprofile-use
(aby se vyuzily optimalizace)CFLAGS+=${PROFILE_ARGS} ... optimal: make clean make PROFILE_ARGS=-fprofile-generate make test0 PROFILE_ARGS=-fprofile-generate make clean make PROFILE_ARGS=-fprofile-use rm *.gcda rm *.gcno
vysledky jsou opravdu "vau!":
jako test jsem pouzil svuj interpretr schemu s temito dalsimi nastavenimi:
-Wall -Winline -O3 -std=c99 -pedantic -finline-limit=100000 --param large-function-growth=100000
Tiskni
Sdílej:
btw. chudaci uzivatele gentoo ... s takovou by meli kompilovat cely system na dvakratJá bych to pro těch pár procent klidně udělal
-fprofile-generate
, pak se s ním zkompiluje kernel s -fprofile-generate
, pak se bude kernel chvíli používat, pak se kernel zkompiluje pomocí -fprofile-use
a v tu chvíli budeš mít v GCC nasbíraný vhodný profil, aby sis GCC mohl zkompilovat s -fprofile-use
. "btw. chudaci uzivatele gentoo ... s takovou by meli kompilovat cely system na dvakrat ;-] "U OpenOffice.org se to ale vyplatí, ne?
btw. chudaci uzivatele gentoo ... s takovou by meli kompilovat cely system na dvakrat ;-]Spíše natřikrát. V prvním kroku se zdrojáky prostě spustí/přeloží pomocí tcc (aby člověk nemusel čekat na doběh kompilace). Potom se na pozadí spustí kompilace s -fprofile-generate a nakonec třetí kompilace tentokrát už s -fprofile-use. Ještě by to chtělo nějakého démona, který pozná špatně profilovanou binárku a na pozadí ji rekompiluje
problem jak z kvantove fyzikyOno už to, že se nějaký profiling dělá, značně mění podmínky. Zvlášť u programů, kde je něco časově kritického.
ten kod na kterem jsem to testoval, je rucne optimalizovany snad na maximum (agresivni inlining, optimalizace na predavani argumentu pres resgistry,....) ...Ale to není ručně optimalizované vůbec. Zkus kouknout, co žere nejvíc času a přepsat to efektivněji, i kdyby se měl kód zesložitit. Pak se začnou dít zázraky a stovky procent budou jen lítat.
Ale to není ručně optimalizované vůbec.a ze si jste tim tak jisty! ;-] jenom nekolik clovekodni jsem stravil pri hledani vhodne struktury pro zasobnik -- a ze jich bylo a ze jsou mezi nema rozdily ;-] btw. vsechno zere vicemene jedna velka smycka, ktera prehazuje hodnoty z jednoho zasobniku na druhy, protoze tam nic jineho neni ;-] (viz moje predchozi posty) ta hranice, kdy se jedna jeste o optimalizaci a kdy o jiny algoritmus, je opravdu hodne nezretelna.... brano ad absurdum, tak nejlepsi optimalizaci by to bylo prepsat z interpretru na prekladac... ;-] ale to uz by nebylo ono, protoze s tim delam dalsi divociny ;-]
"make -j2"
, to same minesota mapserver a najdou se dalsi.... ale co je dneska idealni?!
$ more x.c test(a) { if (a & 1) return fun_1(a); return fun_2(a); }Moc se ale nevyznám ve výstupu. Evidentně LPBX1 je 32 byte, které fungují jako čtyři 64-bitové countery, které počítají průchody čtyřmi základními bloky oné funkce. LC0 je taky jasné, jméno modulu. trojka a čtverka by mohly být čísla řádků... Ostatní se mi ale jeví jako binární šum bez špetky logiky..
.local .LPBX1 .comm .LPBX1,32,32 .section .rodata .LC0: .string "x.gcda" .data .align 4 .LC1: .long 3 .long 1555776990 .long 4 .align 32 .type .LPBX0, @object .size .LPBX0, 52 .LPBX0: .long 875573616 .long 0 .long 1901502412 .long .LC0 .long 1 .long .LC1 .long 1 .long 4 .long .LPBX1 .long __gcov_merge_add .zero 12 .text .type _GLOBAL__I_0_test, @function _GLOBAL__I_0_test: pushl %ebp movl %esp, %ebp subl $8, %esp movl $.LPBX0, (%esp) call __gcov_init leave ret .size _GLOBAL__I_0_test, .-_GLOBAL__I_0_test .section .ctors,"aw",@progbits .align 4 .long _GLOBAL__I_0_test .align 4 .long _GLOBAL__I_0_test