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 13:22 | IT novinky

    Společnost IBM představila server IBM LinuxONE Emperor 5 poháněný procesorem IBM Telum II.

    Ladislav Hagara | Komentářů: 0
    dnes 04:55 | Nová verze

    Byla vydána verze 4.0 multiplatformního integrovaného vývojového prostředí (IDE) pro rychlý vývoj aplikaci (RAD) ve Free Pascalu Lazarus (Wikipedie). Přehled novinek v poznámkách k vydání. Využíván je Free Pascal Compiler (FPC) 3.2.2.

    Ladislav Hagara | Komentářů: 1
    dnes 00:33 | Komunita

    Podpora Windows 10 končí 14. října 2025. Připravovaná kampaň Konec desítek (End of 10) může uživatelům pomoci s přechodem na Linux.

    Ladislav Hagara | Komentářů: 17
    včera 23:22 | Pozvánky

    Již tuto středu proběhne 50. Virtuální Bastlírna, tedy dle římského číslování L. Bude L značit velikost, tedy více diskutujících než obvykle, či délku, neboť díky svátku lze diskutovat dlouho do noci? Bude i příští Virtuální Bastlírna virtuální nebo reálná? Nejen to se dozvíte, když dorazíte na diskuzní večer o elektronice, softwaru, ale technice obecně, který si můžete představit jako virtuální posezení u piva spojené s učenou

    … více »
    bkralik | Komentářů: 0
    včera 22:33 | IT novinky

    Dle plánu dnes končí služba Skype. Uživatelé mohou pokračovat v Microsoft Teams.

    Ladislav Hagara | Komentářů: 0
    včera 21:44 | IT novinky

    Český statistický úřad rozšiřuje Statistický geoportál o Datový portál GIS s otevřenými geografickými daty. Ten umožňuje stahování datových sad podle potřeb uživatelů i jejich prohlížení v mapě a přináší nové možnosti v oblasti analýzy a využití statistických dat.

    Ladislav Hagara | Komentářů: 1
    včera 12:33 | Zajímavý projekt

    Kevin Lin zkouší využívat chytré brýle Mentra při hraní na piano. Vytváří aplikaci AugmentedChords, pomocí které si do brýlí posílá notový zápis (YouTube). Uvnitř brýlí běží AugmentOS (GitHub), tj. open source operační systém pro chytré brýle.

    Ladislav Hagara | Komentářů: 1
    včera 12:11 | Pozvánky

    Jarní konference EurOpen.cz 2025 proběhne 26. až 28. května v Brandýse nad Labem. Věnována je programovacím jazykům, vývoji softwaru a programovacím technikám.

    Ladislav Hagara | Komentářů: 0
    4.5. 21:44 | Komunita

    Na čem aktuálně pracují vývojáři GNOME a KDE Plasma? Pravidelný přehled novinek v Týden v GNOME a Týden v KDE Plasma.

    Ladislav Hagara | Komentářů: 0
    4.5. 14:22 | IT novinky

    Před 25 lety zaplavil celý svět virus ILOVEYOU. Virus se šířil e-mailem, jenž nesl přílohu s názvem I Love You. Příjemci, zvědavému, kdo se do něj zamiloval, pak program spuštěný otevřením přílohy načetl z adresáře e-mailové adresy a na ně pak „milostný vzkaz“ poslal dál. Škody vznikaly jak zahlcením e-mailových serverů, tak i druhou činností viru, kterou bylo přemazání souborů uložených v napadeném počítači.

    Ladislav Hagara | Komentářů: 33
    Jaký filesystém primárně používáte?
     (57%)
     (1%)
     (8%)
     (22%)
     (4%)
     (2%)
     (2%)
     (1%)
     (1%)
     (3%)
    Celkem 533 hlasů
     Komentářů: 22, poslední včera 10:06
    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: 277×
    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.