Dovolil jsem si pred chvili udelat sadu testu garbage collectoru v pythonu. Zarazilo me totiz, ze by se python choval nejak vyrazne hur nez PHP, kde jsem sveho casu psal pametove hodne narocne operace (take miliony iteraci). A stalo se jak jsem ocekaval, tedy python drzi jako skala a nezaznamenal jsem zadny narust spotreby pameti (nad ramec stovek MB, ktere jsem postupne alokoval a odalokovaval apod).
Takze pokud nejaky vypocet uzira pamet a zadne cisteni objektu nepomaha, hledal bych vinika jinde. Predpokladam, ze vypocty ve SciPy jsou kvuli optimalizaci psany v Ccku a jak se vsichni shodneme, napsat pametove neprustrelny C kod vyzaduje zkuseneho programatora. Takze bych spis ocistil python a hodil to na vrub memory leakum daneho modulu.... Marek 2008/5/29 superman <[EMAIL PROTECTED]>: > Obávám se, že jste narazil na limit programovacích jazyků, které dělají > věci automaticky. Prakticky v žádném jazyku, který striktně paměť řídí > garbage collectorem není 100%ní kontrola uvolňování objektů. > > Můžete zkusit modul gc a metodu collect, případně nastavit meze > (thresholds) pro všechny generace. Python používá 3 generaci, přičemž v > generaci 0 jsou nejčerstvější a nejmladší objekty, a gc jí uklízí > nejčastěji. V generaci 1 jsou stálejší objekty, které v Pythonu jsou > delší dobu a v generaci 2 jsou "usádlené" objekty, které jsou v kódu > Pythonu dlouhodobě potřeba. > > Miloslav Ponkrác > > > > 302302 napsal(a): > > Používám knihovnu OpenOpt ze SciPy a výpočty mnohokrát opakuji (>100000). > Použiji tedy klasicky > > > > for i in xrange(0,100000): > > vypocet() > > > > při vypočtu vznikají objekty, iterace, atp. a hromadí se v paměti i > přesto, že je už dále nepotřebuji. Po chvíli mám zaplněnou celou paměť, čímž > samozřejmě značně snížím rychlost výpočtů. Otázka tedy je jak lze donutit > python, aby uvolňoval nepoužívanou paměť. > > Funkce del maže jen reference a bohužel neuvolňuje samotnou paměť. Lze > tedy nějak nastavit Garbage Collector, nebo nějak ručně mazat proměnné? > > > > Díky > > Czenek > > > > Python 2.5.1. > > Ubuntu 7.10. > > > > _______________________________________________ > > Python mailing list > > [email protected] > > http://www.py.cz/mailman/listinfo/python > > > > > > > > _______________________________________________ > Python mailing list > [email protected] > http://www.py.cz/mailman/listinfo/python >
_______________________________________________ Python mailing list [email protected] http://www.py.cz/mailman/listinfo/python
