http://effbot.org/pyfaq/why-doesnt-python-release-the-memory-when-i-delete-a-large-object.htm

That is a little more details

On Thu, May 10, 2012 at 12:37 AM, szimszon <szims...@gmail.com> wrote:

> Should the garbage collector not free up the memory?
>
> 2012. május 10., csütörtök 9:28:48 UTC+2 időpontban Bruce Wade a
> következőt írta:
>
>> That is how python is. If you want something to clear the memory as soon
>> as you are done with it you need C++ :D
>>
>> On Thu, May 10, 2012 at 12:27 AM, szimszon <szims...@gmail.com> wrote:
>>
>>> Yes I know but it happens over type the mem usage is linearly growing
>>> and after the successful execution never released and that is why I ask :(
>>>
>>> 2012. május 10., csütörtök 9:14:14 UTC+2 időpontban Bruce Wade a
>>> következőt írta:
>>>
>>>> WOW not a good idea:
>>>> for row in db( db.file_**propert**ies.id > 0 ).select(
>>>>
>>>> If you have a lot of records that is going to kill your memory.
>>>>
>>>> On Thu, May 10, 2012 at 12:10 AM, szimszon <szims...@gmail.com> wrote:
>>>>
>>>>> I wonder if somebody could help me.
>>>>>
>>>>> The following code has eaten up ~1,5GB ram and after ended
>>>>> successfully it is not released :(
>>>>>
>>>>> file_properties table has 137314 rows.
>>>>>
>>>>> Model:
>>>>> db.define_table( 'files_store',
>>>>>                                 Field( 'name', 'string',
>>>>>                                             label = 'Fájlnév' ,
>>>>>                                             ),
>>>>>                                 Field( 'content', 'upload',
>>>>>                                             uploadseparate = True,
>>>>>                                             autodelete = True,
>>>>>                                             label = 'Aláírt fájl',
>>>>>                                             ),
>>>>>                                 Field( 'status', 'string',
>>>>>                                             label = 'Állapot',
>>>>>                                             requires = IS_IN_SET( [
>>>>> 'empty', 'notsigned', 'senttosign', 'signed'],
>>>>>
>>>>>                   [ 'Üres', 'Aláiratlan', 'Aláírásra elküldve',
>>>>> 'Aláírt'] ),
>>>>>                                             represent = lambda r, row:
>>>>> T( r )
>>>>>                                             ),
>>>>>                                 Field( 'state', 'string',
>>>>>                                             label = 'Státusz',
>>>>>                                             requires = IS_IN_SET( [
>>>>> 'ok', 'error'],
>>>>>
>>>>>                   [ 'Rendben', 'Hiba'] ),
>>>>>                                             represent = lambda r, row:
>>>>> T( r )
>>>>>                                             ),
>>>>>                                 Field( 'data_count', 'integer',
>>>>>                                             label = 'Adat bejegyzések'
>>>>> ,
>>>>>                                             requires = IS_NOT_EMPTY(),
>>>>>                                             default = 0,
>>>>>                                             ),
>>>>>                                 Field( 'dirname', 'string',
>>>>>                                             label = 'Könyvtár név' ,
>>>>>                                             requires = IS_NOT_EMPTY(),
>>>>>                                             ),
>>>>>                                 Field( 'md5sum', 'string',
>>>>>                                             label = T( 'MD5 Sum' ),
>>>>>                                             represent = lambda md5sum,junk
>>>>> : '[%s]' % md5sum,
>>>>>                                             writable = False ),
>>>>>                             auth.signature,
>>>>>                             format = '%(dirname)s/%(name)s (%(id)s)'
>>>>>  )
>>>>> db.files_store.created_on.read****able = True
>>>>> db.define_table( 'file_properties',
>>>>>                                 Field( 'files_store_id', db.
>>>>> files_store,
>>>>>                                             label = 'Aláírt fájl' ,
>>>>>                                             ),
>>>>>                                 Field( 'kezdo_oldal', 'integer',
>>>>>                                             label = 'Számla kezdő
>>>>> oldal',
>>>>>                                             requires = IS_NOT_EMPTY(),
>>>>>                                             ),
>>>>>                                 Field( 'oldalszam', 'integer',
>>>>>                                             label = 'Számla
>>>>> oldalainak száma',
>>>>>                                             requires = IS_NOT_EMPTY(),
>>>>>                                             ),
>>>>>                                 Field( 'szamla_sorszama', 'string',
>>>>>                                             label = 'Számla sorszáma',
>>>>>                                             #requires = IS_NOT_IN_DB(
>>>>> db, 'file_properties' ),
>>>>>                                             unique = True,
>>>>>                                             ),
>>>>>                                 Field( 'ugyfel_azonosito', 'string',
>>>>>                                             label = 'Ügyfél azonosító'
>>>>> ,
>>>>>                                             requires = IS_NOT_EMPTY(),
>>>>>                                             ),
>>>>>                                 Field( 'folyoszamla_azonosito',
>>>>> 'string',
>>>>>                                             label = 'Folyószámla
>>>>> azonosító',
>>>>>                                             requires = IS_NOT_EMPTY(),
>>>>>                                             ),
>>>>>                                 Field( 'teljesites_idopontja', 'date',
>>>>>                                             label = 'Teljesítés
>>>>> időpontja',
>>>>>                                             requires = IS_DATE(
>>>>> '%Y.%m.%d.' ) ),
>>>>>                                 auth.signature,
>>>>>                                 ),
>>>>>
>>>>>
>>>>>
>>>>>
>>>>> Controller:
>>>>>
>>>>> def autoadjust():
>>>>>     lista = list()
>>>>>     last_row = None
>>>>>     next_page_number = 0
>>>>>     for row in db( db.file_properties.id > 0 ).select(
>>>>>
>>>>>                       orderby = ( db.file_properties.files_**store**
>>>>> _id,
>>>>>
>>>>>                                           db.file_properties.id )
>>>>>
>>>>>                       ):
>>>>>         if last_row:
>>>>>             if last_row.files_store_id == row.files_store_id:
>>>>>                 if next_page_number > row.kezdo_oldal:
>>>>>                     row.update_record( kezdo_oldal = next_page_number
>>>>> )
>>>>>
>>>>>             else:
>>>>>                 last_row = row
>>>>>         else:
>>>>>             last_row = row
>>>>>         next_page_number = row.kezdo_oldal + row.oldalszam
>>>>>
>>>>>         lista.append( TR(
>>>>>                                         TD( row.id ),
>>>>>                                         TD( row.files_store_id.name ),
>>>>>                                         TD( row.kezdo_oldal ),
>>>>>                                         TD( row.oldalszam )
>>>>>                                         ) )
>>>>>     lista = TABLE( *lista )
>>>>>     return dict( lista = lista )
>>>>>
>>>>>
>>>>> View:
>>>>> {{extend 'layout.html'}}
>>>>> {{block statusbar}}
>>>>> <h4>Admin felület</h4>
>>>>> {{end}}
>>>>>
>>>>> <h2>AdjustPage</h2>
>>>>>
>>>>> {{=lista}}
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>
>>>>
>>>> --
>>>> --
>>>> Regards,
>>>> Bruce Wade
>>>> http://ca.linkedin.com/in/**bruc**elwade<http://ca.linkedin.com/in/brucelwade>
>>>> http://www.wadecybertech.com
>>>> http://www.fittraineronline.**co**m <http://www.fittraineronline.com>- 
>>>> Fitness Personal Trainers Online
>>>> http://www.warplydesigned.com
>>>>
>>>>
>>
>>
>> --
>> --
>> Regards,
>> Bruce Wade
>> http://ca.linkedin.com/in/**brucelwade<http://ca.linkedin.com/in/brucelwade>
>> http://www.wadecybertech.com
>> http://www.fittraineronline.**com <http://www.fittraineronline.com> -
>> Fitness Personal Trainers Online
>> http://www.warplydesigned.com
>>
>>


-- 
-- 
Regards,
Bruce Wade
http://ca.linkedin.com/in/brucelwade
http://www.wadecybertech.com
http://www.fittraineronline.com - Fitness Personal Trainers Online
http://www.warplydesigned.com

Reply via email to