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_**properties.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/**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