abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
AbcLinuxu hledá autory!
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
    dnes 03:44 | Komunita

    Všem na AbcLinuxu vše nejlepší k Valentýnu aneb Dni lásky ke svobodnému softwaru (I love Free Software Day, Mastodon, 𝕏).

    Ladislav Hagara | Komentářů: 0
    včera 19:22 | Komunita

    Vývojáři openSUSE Tumbleweed oznámili, že u nových instalací se ve výchozím stavu přechází z AppArmor na SELinux. Uživatelé, kteří chtějí zůstat na AppArmor si mohou AppArmor vybrat v instalátoru.

    Ladislav Hagara | Komentářů: 0
    včera 16:44 | Komunita

    Hector "marcan" Martin skončil jako vedoucí projektu Asahi Linux aneb Linux na Apple Siliconu. Projekt ale pokračuje dál.

    Ladislav Hagara | Komentářů: 7
    včera 16:33 | Nová verze

    PostgreSQL byl vydán ve verzích 17.3, 16.7, 15.11, 14.16 a 13.19. Řešena je zranitelnost CVE-2025-1094 s CVSS 8.1 a více než 70 chyb.

    Ladislav Hagara | Komentářů: 0
    včera 14:22 | Humor

    Dnes je Světový den rádia. Použili jste někdy GNU Radio?

    Ladislav Hagara | Komentářů: 3
    včera 12:33 | IT novinky

    Před 33 lety, ve čtvrtek 13. února 1992, se tehdejší Česká a Slovenská Federativní Republika oficiálně (a slavnostně) připojila k Internetu.

    Ladislav Hagara | Komentářů: 1
    12.2. 19:44 | Nová verze

    Byla vydána nová verze 9.10 z Debianu vycházející linuxové distribuce DietPi pro (nejenom) jednodeskové počítače. Přehled novinek v poznámkách k vydání.

    Ladislav Hagara | Komentářů: 0
    12.2. 16:55 | Nová verze

    Český LibreOffice tým vydává překlad příručky LibreOffice Math 24.8. Math je modul editoru vzorců v kancelářském balíku LibreOffice a poskytuje možnosti rozvržení pro zobrazení matematických, chemických, elektrických nebo vědeckých vzorců ve standardní písemné notaci. Příručka je ke stažení na stránce dokumentace.

    ZCR | Komentářů: 0
    12.2. 05:11 | Zajímavý článek

    Společnost Backblaze zveřejnila statistiky spolehlivosti pevných disků používaných ve svých datových centrech za rok 2024. Ke konci roku 2024 vlastnila 305 180 pevných disků. Průměrná AFR (Annualized Failure Rate), tj. pravděpodobnost, že disk během roku selže, byla 1,57 %. V roce 2023 to bylo 1,70 %. V roce 2022 to bylo 1,37 %.

    Ladislav Hagara | Komentářů: 16
    12.2. 04:22 | Bezpečnostní upozornění

    Intel vydal 34 upozornění na bezpečnostní chyby ve svých produktech. Současně vydal verzi 20250211 mikrokódů pro své procesory řešící 5 bezpečnostních chyb.

    Ladislav Hagara | Komentářů: 0
    Rozcestník

    Dotaz: Uvolňování paměti při ukončení programu

    Jardík avatar 11.2.2011 13:10 Jardík | skóre: 40 | blog: jarda_bloguje
    Uvolňování paměti při ukončení programu
    Přečteno: 266×
    Zdravím, na gtk-devel-list mailing listu se rozvynula vášnivá diskuse ohledně uvolňování paměti při ukončení programu. Abych to shrnul, začalo to příspěvkem, že při ukončení programu (gtkmm)
    int main (int argc, char *argv[])
    {
          Gtk::Main *app = new Gtk::Main (&argc, &argv);
          delete app;
          return 0;
    }
    
    není uvolněna veškerá alokované paměť a že jsou tam tedy memory leaky. Problém je ale ve fungování glib a GTK, nikoliv v GTKMM. Vypadá nějak takto
    int main(int argc, char **argv)
    {
      gtk_init(&argc, &argv);
      // dělej něco tady
      gtk_main();
      return 0;
    }
    

    Po ukončení smyčky běžící v gtk_main() je tedy program ukončen a věci alokované v gtk_init (a v jí volaných fcí) a pak v dalších funkcích třeba gtk_widget_get_type() (skryté za makrem GTK_TYPE_WIDGET), funkcích jako g_warning(), prostě nejsou uvolněny a je to necháno operačnímu systému.

    Padly argumenty typu "nemá cenu to uvolňovat a zdržovat ukončení programu, když to stejně uklidí OS" a že "je to knihovna neurčená k několikanásobnému natahování do paměti a tak není třeba při ukončení programu nic uvolňovat". Dalších pár lidí zase tvrdilo, že je slušnost si po sobě uklízet a že by bylo dobré mít (třeba i volitelnou) funkci typu gtk_cleanup(), také kvůli lepší detekci leaků, které nastanou v samotné aplikaci mimo GTK.

    Do diskuse jsem se nazapojil a nejsem asi schopen posoudit, co je lepší - mít o trochu zjednodušené API a nechat uklízet OS, nebo uklízet sám. Uklízet u knihoven, co jsou po celou dobu "životnosti" programu v paměti, nebo ne?

    Věřím v jednoho Boha.

    Řešení dotazu:


    Odpovědi

    11.2.2011 13:30 JS
    Rozbalit Rozbalit vše Re: Uvolňování paměti při ukončení programu
    Viz tez tuto diskusi. Strucne, nazory se ruzni. Ja jsem spis zastance uklizeni a korektniho ukonceni, protoze:

    1. Programator tim dava najevo, ze vi, co kde ma, a tedy ze rozumi programu, a ze je tedy spis napsan korektne.

    2. Nikdy nevite, kde vas kod skonci - pokud skonci v serveru nebo nejakem dlouho bezicim procesu, muze to byt problem.

    3. Existuji nastroje na detekci leaku, a v takovem pripade tohle muze zbytecne prekazet (podobne jako neodstraneny nevinny warning pri kompilaci).
    12.2.2011 16:16 Sten
    Rozbalit Rozbalit vše Re: Uvolňování paměti při ukončení programu
    Korektní uvolňování u OOP (které GTK implementuje) je důležité a mělo by se striktně dodržovat, protože systém potom sice uklidí, ale destruktory nezavolá a to se potom „velmi dobře“ ladí.

    A největší problém je u programů, které GTK načtou jenom na chvíli (třeba kvůli vytvoření PDF) a potom jej zase uvolní, ale paměť zůstane naalokovaná. Knihovna by si po sobě měla umět uklidit.

    Založit nové vláknoNahoru

    Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

    ISSN 1214-1267   www.czech-server.cz
    © 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.