NVIDIA vydala nativního klienta své cloudové herní služby GeForce NOW pro Linux. Zatím v beta verzi.
Open Gaming Collective (OGC) si klade za cíl sdružit všechny klíčové projekty v oblasti linuxového hraní počítačových her. Zakládajícími členy jsou Universal Blue a Bazzite, ASUS Linux, ShadowBlip, PikaOS a Fyra Labs. Strategickými partnery a klíčovými přispěvateli ChimeraOS, Nobara, Playtron a další. Cílem je centralizovat úsilí, takže namísto toho, aby každá distribuce udržovala samostatné opravy systému a podporu hardwaru na
… více »V kryptografické knihovně OpenSSL bylo nalezeno 12 zranitelností. Opraveny jsou v upstream verzích OpenSSL 3.6.1, 3.5.5, 3.4.4, 3.3.6 a 3.0.19. Zranitelnosti objevila společnost AISLE pomocí svého autonomního analyzátoru.
Desktopové prostředí Xfce bude mít vlastní kompozitor pro Wayland s názvem xfwl4. V programovacím jazyce Rust s využitím stavebních bloků z projektu Smithay jej napíše Brian Tarricone. Úprava stávajícího xfwm4 tak, aby paralelně podporoval X11 i Wayland, se ukázala jako špatná cesta.
Desktopové prostředí KDE Plasma 6.8 poběží už pouze nad Waylandem. Vývojáři, kteří s rozhodnutím nesouhlasí, vytvořili fork KDE Plasma s názvem SonicDE (Sonic Desktop Environment) s cílem zachovat a vylepšovat podporu X11.
Byla vydána nová stabilní verze 7.8 dnes již jedenáctiletého webového prohlížeče Vivaldi (Wikipedie). Postavena je na Chromiu 144. Přehled novinek i s náhledy v příspěvku na blogu.
GNU gettext (Wikipedie), tj. sada nástrojů pro psaní vícejazyčných programů, dospěl do verze 1.0. Po více než 30 letech vývoje. Přehled novinek v souboru NEWS.
Chris Kühl (CEO), Christian Brauner (CTO) a Lennart Poettering (Chief Engineer) představili svou společnost Amutable. Má přinést determinismus a ověřitelnou integritu do linuxových systémů.
Byla vydána (𝕏) nová verze 26.1 open source firewallové a routovací platformy OPNsense (Wikipedie). Jedná se o fork pfSense postavený na FreeBSD. Kódový název OPNsense 26.1 je Witty Woodpecker. Přehled novinek v příspěvku na fóru.
Deník TO spustil vlastní zpravodajský webový portál ToHledej.CZ s internetovým vyhledávačem a bezplatnou e-mailovou schránkou. Dle svého tvrzení nabízí 'Zprávy, komentáře, analýzy bez cenzury' a 'Mail bez šmírování a Velkého bratra'. Rozložením a vizuálním stylem se stránky nápadně podobají portálu Seznam.cz a nejspíše je cílem být jeho alternativou. Z podmínek platformy vyplývá, že portál využívá nespecifikovaný internetový vyhledávač třetí strany.
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;
}