Oficiálně byl vydán Android 16. Detaily na blogu a stránkách věnovaných vývojářům.
Byla vydána nová verze 14.3 svobodného unixového operačního systému FreeBSD. Podrobný přehled novinek v poznámkách k vydání.
CSIRT.CZ upozorňuje, že na základě rozhodnutí federálního soudu ve Spojených státech budou veškeré konverzace uživatelů s ChatGPT uchovávány. Včetně těch smazaných.
Ač semestr ve škole právě končí, bastlíři ze studentského klubu Silicon Hill neodpočívají a opět se jako každý měsíc hlásí s pravidelným bastlířským setkáním Virtuální Bastlírna, kde si můžete s ostatními techniky popovídat jako u piva o novinkách, o elektronice, softwaru, vědě, technice obecně, ale také o bizarních tématech, která se za poslední měsíc na internetu vyskytla.
Z novinek za zmínku stojí Maker Faire, kde Pájeníčko předvedlo … více »Na WWDC25 byl představen balíček Containerization a nástroj container pro spouštění linuxových kontejnerů na macOS. Jedná se o open source software pod licencí Apache 2.0 napsaný v programovacím jazyce Swift.
Do 16. června do 19:00 běží na Steamu přehlídka nadcházejících her Festival Steam Next | červen 2025 doplněná demoverzemi, přenosy a dalšími aktivitami. Demoverze lze hrát zdarma.
Apple na své vývojářské konferenci WWDC25 (Worldwide Developers Conference, keynote) představil řadu novinek: designový materiál Liquid Glass, iOS 26, iPadOS 26, macOS Tahoe 26, watchOS 26, visionOS 26, tvOS 26, nové funkce Apple Intelligence, …
Organizátoři konference LinuxDays 2025, jež proběhne o víkendu 4. a 5. října 2025 v Praze na FIT ČVUT, spustili přihlašování přednášek (do 31. srpna) a sběr námětů na zlepšení.
Po roce byla vydána nová stabilní verze 25.6.0 svobodného multiplatformního multimediálního přehrávače SMPlayer (Wikipedie).
DNS4EU, tj. evropská infrastruktura služeb DNS založená na vysoce federovaném a distribuovaném ochranném ekosystému, byla spuštěna v testovacím režimu [𝕏]. Na výběr je 5 možností filtrování DNS.
Chvili mi trvalo nez mi doslo co se mysli pod "jak kdyby to vypadlo z google translate". Ale std::programatorstina je spravna odpoved, BTW ja tak normalne mluvim a nejsem zdaleka sam
Zrovna ten syntakticky strom je napsan "po domacku" a i tak se projevovaly problemy s alokatorem. Alokatoru se proste nezbavite Nemyslim ze by "vlastni STL" prineslo nejake zlepseni navic.
Vsechny zminene performance problemy jsou nejake specialni pripady, "vlastni STL" by mela akorat jine specialni pripady.
Nemyslim ze by "vlastni STL" prineslo nejake zlepseni navic.no, nemyslel jsem prepisovat cele STL (dokazi si predstavit hezci knihovnu) ...ale spis jsem myslel naimplementovat jednotlive datove struktury presne na miru problemu... ja treba z duvodu zlobiveho alokatoru mam jednu implementaci RB-stromu, kde kazdy RB strom si na zacatku naalokuje velky kus pameti a postupne si z nej bere uzly... a jelikoz nepotrebuji odebirat uzly ze stromu... staci mi na konci prace udelat jedno velke free().
"vlastni STL" by mela akorat jine specialni pripady.ale zase jsou to specialni pripady, ktere muzete lip podchytit...
Kdyz se jenom pridava, je to o hodne jednodussi nez kdyz se casto strida pridavani/odebirani (muj pripad), protoze pak vznikaji diry v alokovane pameti kam je potreba nacpat nove alokovane veci.
Pro ruzne kontejnery (at jiz STL nebo kontejnery ruznych jinych jazyku) je dulezita rozumna predikce jak moc se jeste bude vkladat a jaka rezerva se udela, kdyz pri nejakem add() misto dojde. Tady jdou dva pozadavky proti sobe: minimalizovat pocet alokaci a minimalizovat velikost spotrebovane pameti.
Mnoho STL kontejneru ma metodu reserve, a muzete si porucit predalokovani pameti. Jenze to moc nepomuze kdyz je hodne instanci malych struktur.
ale zase jsou to specialni pripady, ktere muzete lip podchytit...
Myslim ze to vyjde uplne nastejno. Aby vlastni specializovane struktury fungovaly lepe, musite mit celkem striktni omezujici podmniky, jinak specialni pripady budou proste jine.
Kdyz se jenom pridava, je to o hodne jednodussi nez kdyz se casto strida pridavani/odebirani (muj pripad), protoze pak vznikaji diry v alokovane pameti kam je potreba nacpat nove alokovane veci.to nebyla podstata toho, co jsem chtel rict... jde o to, ze pak budete mit kod pod vetsi kontrolou a nemusite pouzivat ,,general purpose'' reseni, ktera musi delat kompromisy a muzete pouzit ruzne vychytavky...
Prave na tenhle zpusob je navrzen pythoni alokator (proto mel takovy uspech i kdyz byl pouzit jen v nekolika "hotspot" strukturach). Neni vubec problem uvolnit pamet po objektu, spise efektivne najit misto pro novy objekt. Diry v alokovane pameti budou vznikat at delate co delate.
Neni vubec problem uvolnit pamet po objektu, spise efektivne najit misto pro novy objekt.tak toto je u rady GC vyreseno velice rychle... ;-]
Diry v alokovane pameti budou vznikat at delate co delateprave proto jsem zminoval pouziti GC. bezne alokatory maji jeste docela rezii s udrzovani seznamu uvolnenych objektu... navic pri pouziti compacting GC odpada problem s fragmentaci dat...
Compacting GC byla prvni vec, ktera me pri cteni te zoufale historky napadla... Alokace je, ehm, docela rychla a odpadaji problemy s fragmentaci.
Docela by me zajimalo, jak by si vedl.
Nejvetsi problem by byl s tou "compacting" casti. Tabulky referenci by se daly upravit, aby s presunem pocitaly, u AST stromu je to absolutne vylouceno. Na druhe strane je mozne ztratit dost casu updatovanim pointru po presunu a indirekci navic. Jak by to dopadlo v tomhle pripade by me taky zajimalo, ale to se asi nedovim.
Hmm je zvlastni ze si wokna vedly tak spatne. Pokud si dobre pamatuju nejaky prednasku tak NT kernel ma mnohem bohatejsi API. Dokonce si od nej muzete vytorit ruzne alokatory pro ruzne velke objekty a on pak prideluje pamet z ruznych poolu. Cele to ma byt efektivnejsi nez alokace pameti na Unixu. Kdovi jestli se tahle super featura NT kernelu jeste dneska pouziva.
Kdysi jsem řešil podobný problém a v Microsoftu mi poradili řešení pomocí funkce _set_sbh_threshold() a ono to zafungovalo.
Diky za tip, vyzkousime to. Z popisu funkce _set_sbh_threshold zatim nevim, jestli to taky plati na operator new (tipuju ze nejspis jo).
Tak jsem to vyzkousel. Velikosti jsem volil 70, 256, 504, 1016 (posledni byla default do win 2000, pak se to vyplo nastavenim na nulu). Jednou v kombinaci s LFH, pak bez LFH. Vysledkem je, ze v uvadenych pripadech to bylo vzdy o 20-50% horsi nez jenom LFH.
Pokud vim, LFH se chova hodne podobne jak ten pythoni alokator, tj. zdruzuje po blocich podobne velikosti, tady je celkem pekny schema: http://www.i.u-tokyo.ac.jp/edu/training/ss/lecture/new-documents/Lectures/16-UserModeHeap/UserModeHeapManager.ppt
Tiskni
Sdílej: