Dobrý den, je to celkem zajímavé, mně osobně to připadá jako nedodělávka Pythonu, hlavně třídy list. Zajímavost: v Pythonu 3k to funguje správně, ale protože třídu list nějak vylepšili, tak to naalokuje 200MB, pak to spadne na 10MB a pak zase 200MB. Docela mě zajímá, co s tím je, tak se na to ještě kouknu. Zatím jsem zkoušel použít "del" na list i na jeho jednotlivé členy, zkoušel jsem list.pop(), ale nic nefunguje tak jak má.
Koumes21 slush napsal(a): > Zdravim, > > narazil jsem na problem, ktery nedokazu vysvetlit. Mozna je nekde chyba, > ale mnohem pravdepodobneji jen neco delam spatne ja. Jedna se o > abnormalni "nenazranost" pythonu a o nasledne neuvolnovani pameti pote, > co naalokovanou pamet jiz nepotrebuji. > > V priloze zasilam jednoduchy skript,ktery nejdrive naalokuje seznam o > delce 10 mil. zaznamu, nasledne seznam smaze (nastavenim seznamu na > nulovou delku) a opet ho naalokuje. Cekal bych, ze pametova narocnost > bude nekde v rozmezi desitek MB (tedy v prumeru do 10 bytes na jednu > polozku ciselneho seznamu) a ze po uvolneni seznamu dojde ke zmenseni > obsazene pameti na predchozi uroven. > > Problem 1) Python si pro 10 mil. číselných záznamů naalokoval cca 160 MB. > Problem 2) Po odalokovani klesla spotreba pameti na 120MB > > Podle hrubych internich vypoctu mi vychazi, ze ten 40MB rozdil je > uvolneni datovych struktur primo spojenych s ulozenym seznamem a po > uvolneni seznamu opravdu dochazi k odalokovani. Neni mi ale jasne, co > obsahuje zbyvajicich 120MB. > > Zkousel jsem do tohoto skriptu zapracovat i spravu garbage collectoru > (model gc). Bohuzel, po odalokovani pameti gc neobsahoval zadne > informace o zabrane pameti,ackoliv skript stale konzumoval 120 MB. > > Prilozeny skript a vyse obsazenych prostredku jsem overoval pod Linuxem > a Windows Vista, v obou pripadech se stejnym vysledkem (v Linuxu byla > celkova spotreba o cca 4 MB mensi). > > Hlavni otazkou tedy je, jestli je toto chovani normalni, respektive > jestli lze nejak ridit spotrebu pameti pythonem. > > Diky za kazdy tip, > Marek > > > ------------------------------------------------------------------------ > > _______________________________________________ > Python mailing list > [email protected] > http://www.py.cz/mailman/listinfo/python
signature.asc
Description: OpenPGP digital signature
_______________________________________________ Python mailing list [email protected] http://www.py.cz/mailman/listinfo/python
