Společnost JetBrains uvolnila verzi 2 svého open-source velkého jazykového modelu (LLM) pro vývojáře Mellum.
Probíhá konference Microsoft Build 2026. Microsoft představuje své novinky: kvantový čip Majorana 2, Surface Laptop Ultra a Surface RTX Spark Dev Box s NVIDIA RTX Spark, Intelligent Terminal, Coreutils for Windows (fork Rust Coreutils), AI modely MAI, AI agenta Scout, platformu pro agent-first zařízení Project Solara, …
Google Chrome 149 byl prohlášen za stabilní. Nejnovější stabilní verze 149.0.7827.53 přináší řadu novinek. Podrobný přehled v poznámkách k vydání. Vylepšeny byly také nástroje pro vývojáře.
Pluto.jl, reaktivní notebook pro programovací jazyk Julia, dospěl do verze 1.0.
Byla vydána nová verze 12.0.0 vizuálního programovacího jazyka Snap! (Wikipedie) inspirovaného jazykem Scratch (Wikipedie). Přehled novinek na GitHubu.
Počítačovou hru Gravity Circuit (ProtonDB) lze do 14. června do 19:00 získat na Steamu zdarma. Napořád.
Nejnovější X.Org X server 21.1.23 a Xwayland 24.1.12 řeší 9 bezpečnostních chyb.
npm balíčky @redhat-cloud-services byly kompromitovány.
Byly publikovány informace o zranitelnosti CVE-2026-46243 pojmenované CIFSwitch v Linuxu od roku 2007. Běžný uživatel může získat práva roota (lokální eskalaci práv). V upstreamu je již opraveno.
Nvidia na své konferenci NVIDIA GTC Taipei 2026 představila řadu novinek. Společně s Microsoftem představili superčip NVIDIA RTX Spark (až 6 144 jader GPU, 20 jader CPU, 1 petaflop AI výkonu v FP4 a 128 GB jednotné paměti). První notebooky a stolní počítače s tímto čipem od Nvidie místo Intelu nebo AMD by se měly na trh dostat na podzim letošního roku.
Mam tu rozepsany text srovnavajici spravu pameti z pohledu aplikace a jelikoz vetsina je o automaticke dealokaci a jejich vyhodach, tak jsem zkusil udelat priklad, kde by tolik pomlouvani sberaci odpadku vyhrali.
Je to opravdu hruza a s realnym pouzitim to nema nic spolecneho. Kazdopadne ty rozdily jsou docela markantni a zajimave
#include <gc/gc.h>
#include <stdlib.h>
#define MAX_ALLOCATIONS (10000000)
#ifdef USE_GC
#define ALLOC(x) (GC_MALLOC_ATOMIC(x))
#define FREE(x) GC_FREE(x)
#endif
#ifdef USE_GLIBC
#define ALLOC(x) (malloc(x))
#define FREE(x) free(x)
#endif
#ifdef USE_LEAVE_ALLOCATED
#define ALLOC(x) (malloc(x))
#define FREE(x) {}
#endif
int main(int argc, char **argv)
{
unsigned long i;
unsigned long result;
for (i = 0; i < MAX_ALLOCATIONS; i++) {
int * a = ALLOC(sizeof(unsigned long));
*a = i * 2;
result += *a;
FREE(a);
}
return 0;
}
Tiskni
Sdílej:
Knihovní malloc() je pěkně obecný (thread-safe a kdo ví, co všechno ještě), ale rychlostí opravdu neoplývá, zvlášť při alokování maličkých bloků (ostatně paměťový overhead jednoho pointeru na alokovaný blok také není zanedbatelný).
V takovémhle případě je nejrychlejší napsat si alokátor vlastní, který ví o tom, že alokujete pořád stejné bloky (to sice není obecně pravda, ale pokud program alokuje spoustu bloků, jsou skoro vždy několika málo různých velikostí). Pěkným příkladem je třeba SLAB alokator použitý v kernelu.
Tím určitě nechci pány popeláře zatracovat, ono programování s garbage collectorem je opravdu příjemné a návykové, ale určitě bych to nedělal kvůli výkonu...
#include <gc/gc.h>
#include <stdlib.h>
#define MAX_ALLOCATIONS (416660)
#define USE_GC
#ifdef USE_GC
#define ALLOC(x) (GC_MALLOC_ATOMIC(x))
#define FREE(x) {}
#endif
#ifdef USE_GLIBC
#define ALLOC(x) (malloc(x))
#define FREE(x) free(x)
#endif
#ifdef USE_LEAVE_ALLOCATED
#define ALLOC(x) (malloc(x))
#define FREE(x) {}
#endif
int main(int argc, char **argv)
{
unsigned long i;
unsigned long result;
for (i = 0; i < MAX_ALLOCATIONS; i++) {
int * a = ALLOC(3000*sizeof(unsigned long));
*a = i * 2;
result += *a;
FREE(a);
}
return 0;
}