Plateforme Level Extreme
Abonnement
Profil corporatif
Produits & Services
Support
Légal
English
Cross reference objects
Message
De
24/10/2001 09:56:45
Marco Beuk
Innovero Software Solutions
The Hague, Pays-Bas
 
 
À
Tous
Information générale
Forum:
Visual FoxPro
Catégorie:
Programmation Orientée Object
Titre:
Cross reference objects
Divers
Thread ID:
00572577
Message ID:
00572577
Vues:
51
We had an ever growing DLL (could have been an exe too). After analyzing the code for many hours we discovered the cause of the problem:
Within a method of object A we did a createobject to object B and passed A (this). In the init of object B we store the passed object in a property.

Try the following for example:

FOR nTel = 1 TO 1000
x = CreateObject( 'textbox' )
y = CreateObject( 'textbox' )

x.AddProperty( 'test', y )
y.AddProperty( 'test', x )

x = null
y = null
ENDFOR
MESSAGEBOX('Watch the memory usage in the taskmanager')


While executing this code watch the memory usage in the taskmanager. It grows up to 18 MB!!
IF you remove the link y.AddProperty( 'test', x ) not only the memory usage is growing but performance differs 20 times or more!

Our solutions will be the usage of an intermediair object z:
z point to x, z points to y and y points to z so that we can refer from y to x with y.z.x

Marco.
Suivant
Répondre
Fil
Voir

Click here to load this message in the networking platform