Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Données, métiers, interfaces, et les joies du 3/3...

6 réponses
Avatar
Jean-Francis OCHS
Bonjour,

Je me mets tout doucement à COM pour développer des applications 3/3...

J'ai compris les systèmes de développement de base interface, couche métier,
couche données... par contre, la moindre interface qui fait appel à une de
mes couches métier puis données prends tout de suite 9 Mo en mémoire...et
cela pour un piti recordset de 3 lignes...alors je me dis que j'ai fait une
connerie quelque part...

1. Comment faire en sorte de diminuer la charge mémoire lors e l'utilisation
de composants ?
2. Que dois je utiliser pour faire en sorte que ma couche données reste
chargée en mémoire une fois initialisée ( càd faire en sorte d'utiliser une
seule instance de ma classe de données polutôt que de la reloader à chaque
fois)

Si il faut que je sois plus clair, hésitez pas...

Merci d'avance...




---
Message envoyé ne contenant aucun virus connu.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.509 / Virus Database: 306 - Release Date: 12/08/2003

6 réponses

Avatar
Crevecoeur Jérôme
Bonjour,
Vous trouverez à cette adresse
http://rp.developpez.com/vb/tutoriels/troistiers/

un tutorial sur une architecture trois tiers.

Peut-etre que cet exemple vous permetra d'y voir plus clair.
Votre objet de donnée, vous le déclarant en global dans l'application?
Libérez vous bien toute la mémoire aprés son utilisation?


Cordialement
--
----------------------------------------------------------------------------
--------------------
Crévecoeur Jérôme

ACS INFORMATIQUE
122,rue du Château d'orgemont
49000 ANGERS
Tel: 02 41 68 42 36 Fax: 02 41 68 42 48
----------------------------------------------------------------------------
---------------------
"Jean-Francis OCHS" a écrit dans le message de
news:%
Bonjour,

Je me mets tout doucement à COM pour développer des applications 3/3...

J'ai compris les systèmes de développement de base interface, couche


métier,
couche données... par contre, la moindre interface qui fait appel à une de
mes couches métier puis données prends tout de suite 9 Mo en mémoire...et
cela pour un piti recordset de 3 lignes...alors je me dis que j'ai fait


une
connerie quelque part...

1. Comment faire en sorte de diminuer la charge mémoire lors e


l'utilisation
de composants ?
2. Que dois je utiliser pour faire en sorte que ma couche données reste
chargée en mémoire une fois initialisée ( càd faire en sorte d'utiliser


une
seule instance de ma classe de données polutôt que de la reloader à chaque
fois)

Si il faut que je sois plus clair, hésitez pas...

Merci d'avance...




---
Message envoyé ne contenant aucun virus connu.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.509 / Virus Database: 306 - Release Date: 12/08/2003




Avatar
Jean-Francis OCHS
C'est le tutoriel que j'ai utilisé pour génerer mon application...
J'ai vraiment employé le même principe...

Alors je comprends pas...

Voici le schéma simplifié exact de mon application :

Couche donnée --> Pâle copie du tutoriel avec une fonction rajoutée qui me
renvoie la valeur maximale d'une clé dans une table..

Couche métier --> deux fonctions : -> récupération d'un recordset ( 3
upplets de 6 colonnes )
-> Récupération de
la valeur maximale d'une clé
Interface : Création De l'objet métier par CreateObject --> Taille du prog
compilé 20ko --> taille en mémoire 9 Mo !!!


En plus, je souhaiterais que ma couche données soit résidente... un
chargement unique.


"Crevecoeur Jérôme" a écrit dans le message de
news:
Bonjour,
Vous trouverez à cette adresse
http://rp.developpez.com/vb/tutoriels/troistiers/

un tutorial sur une architecture trois tiers.

Peut-etre que cet exemple vous permetra d'y voir plus clair.
Votre objet de donnée, vous le déclarant en global dans l'application?
Libérez vous bien toute la mémoire aprés son utilisation?


Cordialement
--
--------------------------------------------------------------------------


--
--------------------
Crévecoeur Jérôme

ACS INFORMATIQUE
122,rue du Château d'orgemont
49000 ANGERS
Tel: 02 41 68 42 36 Fax: 02 41 68 42 48
--------------------------------------------------------------------------


--
---------------------
"Jean-Francis OCHS" a écrit dans le message de
news:%
> Bonjour,
>
> Je me mets tout doucement à COM pour développer des applications 3/3...
>
> J'ai compris les systèmes de développement de base interface, couche
métier,
> couche données... par contre, la moindre interface qui fait appel à une


de
> mes couches métier puis données prends tout de suite 9 Mo en


mémoire...et
> cela pour un piti recordset de 3 lignes...alors je me dis que j'ai fait
une
> connerie quelque part...
>
> 1. Comment faire en sorte de diminuer la charge mémoire lors e
l'utilisation
> de composants ?
> 2. Que dois je utiliser pour faire en sorte que ma couche données reste
> chargée en mémoire une fois initialisée ( càd faire en sorte d'utiliser
une
> seule instance de ma classe de données polutôt que de la reloader à


chaque
> fois)
>
> Si il faut que je sois plus clair, hésitez pas...
>
> Merci d'avance...
>
>
>
>
> ---
> Message envoyé ne contenant aucun virus connu.
> Checked by AVG anti-virus system (http://www.grisoft.com).
> Version: 6.0.509 / Virus Database: 306 - Release Date: 12/08/2003
>
>






---
Message envoyé ne contenant aucun virus connu.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.509 / Virus Database: 306 - Release Date: 12/08/2003
Avatar
Jean-Francis OCHS
Vi...mais ça règle pas mon problème :)

lol


"Bismark Prods" a écrit dans le message de
news:OAJPJ$
C'est marrant cette architecture de gestion des données me fait


furieusement
penser à l'architecture utilisée en PHP. Avec les include('clsData.php');
etc....

lol

"Jean-Francis OCHS" a écrit dans le message de
news:%
> C'est le tutoriel que j'ai utilisé pour génerer mon application...
> J'ai vraiment employé le même principe...
>
> Alors je comprends pas...
>
> Voici le schéma simplifié exact de mon application :
>
> Couche donnée --> Pâle copie du tutoriel avec une fonction rajoutée qui


me
> renvoie la valeur maximale d'une clé dans une table..
>
> Couche métier --> deux fonctions : -> récupération d'un recordset ( 3
> upplets de 6 colonnes )
> -> Récupération
de
> la valeur maximale d'une clé
> Interface : Création De l'objet métier par CreateObject --> Taille du


prog
> compilé 20ko --> taille en mémoire 9 Mo !!!
>
>
> En plus, je souhaiterais que ma couche données soit résidente... un
> chargement unique.
>
>
> "Crevecoeur Jérôme" a écrit dans le message
de
> news:
> > Bonjour,
> > Vous trouverez à cette adresse
> > http://rp.developpez.com/vb/tutoriels/troistiers/
> >
> > un tutorial sur une architecture trois tiers.
> >
> > Peut-etre que cet exemple vous permetra d'y voir plus clair.
> > Votre objet de donnée, vous le déclarant en global dans l'application?
> > Libérez vous bien toute la mémoire aprés son utilisation?
> >
> >
> > Cordialement
> > --
>

--------------------------------------------------------------------------
> --
> > --------------------
> > Crévecoeur Jérôme
> >
> > ACS INFORMATIQUE
> > 122,rue du Château d'orgemont
> > 49000 ANGERS
> > Tel: 02 41 68 42 36 Fax: 02 41 68 42 48
>

--------------------------------------------------------------------------
> --
> > ---------------------
> > "Jean-Francis OCHS" a écrit dans le message


de
> > news:%
> > > Bonjour,
> > >
> > > Je me mets tout doucement à COM pour développer des applications
3/3...
> > >
> > > J'ai compris les systèmes de développement de base interface, couche
> > métier,
> > > couche données... par contre, la moindre interface qui fait appel à
une
> de
> > > mes couches métier puis données prends tout de suite 9 Mo en
> mémoire...et
> > > cela pour un piti recordset de 3 lignes...alors je me dis que j'ai
fait
> > une
> > > connerie quelque part...
> > >
> > > 1. Comment faire en sorte de diminuer la charge mémoire lors e
> > l'utilisation
> > > de composants ?
> > > 2. Que dois je utiliser pour faire en sorte que ma couche données
reste
> > > chargée en mémoire une fois initialisée ( càd faire en sorte
d'utiliser
> > une
> > > seule instance de ma classe de données polutôt que de la reloader à
> chaque
> > > fois)
> > >
> > > Si il faut que je sois plus clair, hésitez pas...
> > >
> > > Merci d'avance...
> > >
> > >
> > >
> > >
> > > ---
> > > Message envoyé ne contenant aucun virus connu.
> > > Checked by AVG anti-virus system (http://www.grisoft.com).
> > > Version: 6.0.509 / Virus Database: 306 - Release Date: 12/08/2003
> > >
> > >
> >
> >
>
>
> ---
> Message envoyé ne contenant aucun virus connu.
> Checked by AVG anti-virus system (http://www.grisoft.com).
> Version: 6.0.509 / Virus Database: 306 - Release Date: 12/08/2003
>
>






---
Message envoyé ne contenant aucun virus connu.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.509 / Virus Database: 306 - Release Date: 12/08/2003
Avatar
Bismark Prods
tu dis que tu as suivi a la lettre l'exemple soumis par Jérome ?

je vais aussi suivre exactement et je te redis si ca donne le meme résultat
que chez toi ok ?

"Jean-Francis OCHS" a écrit dans le message de
news:
Vi...mais ça règle pas mon problème :)

lol


"Bismark Prods" a écrit dans le message de
news:OAJPJ$
> C'est marrant cette architecture de gestion des données me fait
furieusement
> penser à l'architecture utilisée en PHP. Avec les


include('clsData.php');
> etc....
>
> lol
>
> "Jean-Francis OCHS" a écrit dans le message de
> news:%
> > C'est le tutoriel que j'ai utilisé pour génerer mon application...
> > J'ai vraiment employé le même principe...
> >
> > Alors je comprends pas...
> >
> > Voici le schéma simplifié exact de mon application :
> >
> > Couche donnée --> Pâle copie du tutoriel avec une fonction rajoutée


qui
me
> > renvoie la valeur maximale d'une clé dans une table..
> >
> > Couche métier --> deux fonctions : -> récupération d'un recordset ( 3
> > upplets de 6 colonnes )
> > -> Récupération
> de
> > la valeur maximale d'une clé
> > Interface : Création De l'objet métier par CreateObject --> Taille du
prog
> > compilé 20ko --> taille en mémoire 9 Mo !!!
> >
> >
> > En plus, je souhaiterais que ma couche données soit résidente... un
> > chargement unique.
> >
> >
> > "Crevecoeur Jérôme" a écrit dans le


message
> de
> > news:
> > > Bonjour,
> > > Vous trouverez à cette adresse
> > > http://rp.developpez.com/vb/tutoriels/troistiers/
> > >
> > > un tutorial sur une architecture trois tiers.
> > >
> > > Peut-etre que cet exemple vous permetra d'y voir plus clair.
> > > Votre objet de donnée, vous le déclarant en global dans


l'application?
> > > Libérez vous bien toute la mémoire aprés son utilisation?
> > >
> > >
> > > Cordialement
> > > --
> >
>

--------------------------------------------------------------------------
> > --
> > > --------------------
> > > Crévecoeur Jérôme
> > >
> > > ACS INFORMATIQUE
> > > 122,rue du Château d'orgemont
> > > 49000 ANGERS
> > > Tel: 02 41 68 42 36 Fax: 02 41 68 42 48
> >
>

--------------------------------------------------------------------------
> > --
> > > ---------------------
> > > "Jean-Francis OCHS" a écrit dans le


message
de
> > > news:%
> > > > Bonjour,
> > > >
> > > > Je me mets tout doucement à COM pour développer des applications
> 3/3...
> > > >
> > > > J'ai compris les systèmes de développement de base interface,


couche
> > > métier,
> > > > couche données... par contre, la moindre interface qui fait appel


à
> une
> > de
> > > > mes couches métier puis données prends tout de suite 9 Mo en
> > mémoire...et
> > > > cela pour un piti recordset de 3 lignes...alors je me dis que j'ai
> fait
> > > une
> > > > connerie quelque part...
> > > >
> > > > 1. Comment faire en sorte de diminuer la charge mémoire lors e
> > > l'utilisation
> > > > de composants ?
> > > > 2. Que dois je utiliser pour faire en sorte que ma couche données
> reste
> > > > chargée en mémoire une fois initialisée ( càd faire en sorte
> d'utiliser
> > > une
> > > > seule instance de ma classe de données polutôt que de la reloader


à
> > chaque
> > > > fois)
> > > >
> > > > Si il faut que je sois plus clair, hésitez pas...
> > > >
> > > > Merci d'avance...
> > > >
> > > >
> > > >
> > > >
> > > > ---
> > > > Message envoyé ne contenant aucun virus connu.
> > > > Checked by AVG anti-virus system (http://www.grisoft.com).
> > > > Version: 6.0.509 / Virus Database: 306 - Release Date: 12/08/2003
> > > >
> > > >
> > >
> > >
> >
> >
> > ---
> > Message envoyé ne contenant aucun virus connu.
> > Checked by AVG anti-virus system (http://www.grisoft.com).
> > Version: 6.0.509 / Virus Database: 306 - Release Date: 12/08/2003
> >
> >
>
>


---
Message envoyé ne contenant aucun virus connu.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.509 / Virus Database: 306 - Release Date: 12/08/2003




Avatar
Bismark Prods
alors je te confirme que chez moi aussi ca grimpe de 5 à 9 Mo meme sans base
de donnée ! J'ai fait le projet à l'identique de l'exemple, mais je n'ai pas
créer la base de donnée donc ca génère une erreur ! Mais cela fait néanmoins
passer à 9 Mo. Donc ton problème n'en est pas un en rapport avec la taille
de la base ! Je pense qu'il s'agit de la mise en mémoire des éléments qui se
trouve dans les DLL ! peut-etre y a-t-il des éléments qui n'ont pas été
déchargés correctement apres leur exécution ! A mon avis c'est une affaire
d'optimisation uniquement.


"Bismark Prods" a écrit dans le message de
news:
tu dis que tu as suivi a la lettre l'exemple soumis par Jérome ?

je vais aussi suivre exactement et je te redis si ca donne le meme


résultat
que chez toi ok ?

"Jean-Francis OCHS" a écrit dans le message de
news:
> Vi...mais ça règle pas mon problème :)
>
> lol
>
>
> "Bismark Prods" a écrit dans le message de
> news:OAJPJ$
> > C'est marrant cette architecture de gestion des données me fait
> furieusement
> > penser à l'architecture utilisée en PHP. Avec les
include('clsData.php');
> > etc....
> >
> > lol
> >
> > "Jean-Francis OCHS" a écrit dans le message


de
> > news:%
> > > C'est le tutoriel que j'ai utilisé pour génerer mon application...
> > > J'ai vraiment employé le même principe...
> > >
> > > Alors je comprends pas...
> > >
> > > Voici le schéma simplifié exact de mon application :
> > >
> > > Couche donnée --> Pâle copie du tutoriel avec une fonction rajoutée
qui
> me
> > > renvoie la valeur maximale d'une clé dans une table..
> > >
> > > Couche métier --> deux fonctions : -> récupération d'un recordset


( 3
> > > upplets de 6 colonnes )
> > > ->


Récupération
> > de
> > > la valeur maximale d'une clé
> > > Interface : Création De l'objet métier par CreateObject --> Taille


du
> prog
> > > compilé 20ko --> taille en mémoire 9 Mo !!!
> > >
> > >
> > > En plus, je souhaiterais que ma couche données soit résidente... un
> > > chargement unique.
> > >
> > >
> > > "Crevecoeur Jérôme" a écrit dans le
message
> > de
> > > news:
> > > > Bonjour,
> > > > Vous trouverez à cette adresse
> > > > http://rp.developpez.com/vb/tutoriels/troistiers/
> > > >
> > > > un tutorial sur une architecture trois tiers.
> > > >
> > > > Peut-etre que cet exemple vous permetra d'y voir plus clair.
> > > > Votre objet de donnée, vous le déclarant en global dans
l'application?
> > > > Libérez vous bien toute la mémoire aprés son utilisation?
> > > >
> > > >
> > > > Cordialement
> > > > --
> > >
> >
>

--------------------------------------------------------------------------
> > > --
> > > > --------------------
> > > > Crévecoeur Jérôme
> > > >
> > > > ACS INFORMATIQUE
> > > > 122,rue du Château d'orgemont
> > > > 49000 ANGERS
> > > > Tel: 02 41 68 42 36 Fax: 02 41 68 42 48
> > >
> >
>

--------------------------------------------------------------------------
> > > --
> > > > ---------------------
> > > > "Jean-Francis OCHS" a écrit dans le
message
> de
> > > > news:%
> > > > > Bonjour,
> > > > >
> > > > > Je me mets tout doucement à COM pour développer des applications
> > 3/3...
> > > > >
> > > > > J'ai compris les systèmes de développement de base interface,
couche
> > > > métier,
> > > > > couche données... par contre, la moindre interface qui fait


appel
à
> > une
> > > de
> > > > > mes couches métier puis données prends tout de suite 9 Mo en
> > > mémoire...et
> > > > > cela pour un piti recordset de 3 lignes...alors je me dis que


j'ai
> > fait
> > > > une
> > > > > connerie quelque part...
> > > > >
> > > > > 1. Comment faire en sorte de diminuer la charge mémoire lors e
> > > > l'utilisation
> > > > > de composants ?
> > > > > 2. Que dois je utiliser pour faire en sorte que ma couche


données
> > reste
> > > > > chargée en mémoire une fois initialisée ( càd faire en sorte
> > d'utiliser
> > > > une
> > > > > seule instance de ma classe de données polutôt que de la


reloader
à
> > > chaque
> > > > > fois)
> > > > >
> > > > > Si il faut que je sois plus clair, hésitez pas...
> > > > >
> > > > > Merci d'avance...
> > > > >
> > > > >
> > > > >
> > > > >
> > > > > ---
> > > > > Message envoyé ne contenant aucun virus connu.
> > > > > Checked by AVG anti-virus system (http://www.grisoft.com).
> > > > > Version: 6.0.509 / Virus Database: 306 - Release Date:


12/08/2003
> > > > >
> > > > >
> > > >
> > > >
> > >
> > >
> > > ---
> > > Message envoyé ne contenant aucun virus connu.
> > > Checked by AVG anti-virus system (http://www.grisoft.com).
> > > Version: 6.0.509 / Virus Database: 306 - Release Date: 12/08/2003
> > >
> > >
> >
> >
>
>
> ---
> Message envoyé ne contenant aucun virus connu.
> Checked by AVG anti-virus system (http://www.grisoft.com).
> Version: 6.0.509 / Virus Database: 306 - Release Date: 12/08/2003
>
>




Avatar
Bismark Prods
Oui c'est ce que je pensais ! il y a des objets qui ne sont pas décharger
apres leur utilisation ! dans clsData, on peut faire plusieurs set obj nothing ce qui fait deja descendre de 9 Mo à 6 Mo ! pas mal non ?

"Jean-Francis OCHS" a écrit dans le message de
news:
Vi...mais ça règle pas mon problème :)

lol


"Bismark Prods" a écrit dans le message de
news:OAJPJ$
> C'est marrant cette architecture de gestion des données me fait
furieusement
> penser à l'architecture utilisée en PHP. Avec les


include('clsData.php');
> etc....
>
> lol
>
> "Jean-Francis OCHS" a écrit dans le message de
> news:%
> > C'est le tutoriel que j'ai utilisé pour génerer mon application...
> > J'ai vraiment employé le même principe...
> >
> > Alors je comprends pas...
> >
> > Voici le schéma simplifié exact de mon application :
> >
> > Couche donnée --> Pâle copie du tutoriel avec une fonction rajoutée


qui
me
> > renvoie la valeur maximale d'une clé dans une table..
> >
> > Couche métier --> deux fonctions : -> récupération d'un recordset ( 3
> > upplets de 6 colonnes )
> > -> Récupération
> de
> > la valeur maximale d'une clé
> > Interface : Création De l'objet métier par CreateObject --> Taille du
prog
> > compilé 20ko --> taille en mémoire 9 Mo !!!
> >
> >
> > En plus, je souhaiterais que ma couche données soit résidente... un
> > chargement unique.
> >
> >
> > "Crevecoeur Jérôme" a écrit dans le


message
> de
> > news:
> > > Bonjour,
> > > Vous trouverez à cette adresse
> > > http://rp.developpez.com/vb/tutoriels/troistiers/
> > >
> > > un tutorial sur une architecture trois tiers.
> > >
> > > Peut-etre que cet exemple vous permetra d'y voir plus clair.
> > > Votre objet de donnée, vous le déclarant en global dans


l'application?
> > > Libérez vous bien toute la mémoire aprés son utilisation?
> > >
> > >
> > > Cordialement
> > > --
> >
>

--------------------------------------------------------------------------
> > --
> > > --------------------
> > > Crévecoeur Jérôme
> > >
> > > ACS INFORMATIQUE
> > > 122,rue du Château d'orgemont
> > > 49000 ANGERS
> > > Tel: 02 41 68 42 36 Fax: 02 41 68 42 48
> >
>

--------------------------------------------------------------------------
> > --
> > > ---------------------
> > > "Jean-Francis OCHS" a écrit dans le


message
de
> > > news:%
> > > > Bonjour,
> > > >
> > > > Je me mets tout doucement à COM pour développer des applications
> 3/3...
> > > >
> > > > J'ai compris les systèmes de développement de base interface,


couche
> > > métier,
> > > > couche données... par contre, la moindre interface qui fait appel


à
> une
> > de
> > > > mes couches métier puis données prends tout de suite 9 Mo en
> > mémoire...et
> > > > cela pour un piti recordset de 3 lignes...alors je me dis que j'ai
> fait
> > > une
> > > > connerie quelque part...
> > > >
> > > > 1. Comment faire en sorte de diminuer la charge mémoire lors e
> > > l'utilisation
> > > > de composants ?
> > > > 2. Que dois je utiliser pour faire en sorte que ma couche données
> reste
> > > > chargée en mémoire une fois initialisée ( càd faire en sorte
> d'utiliser
> > > une
> > > > seule instance de ma classe de données polutôt que de la reloader


à
> > chaque
> > > > fois)
> > > >
> > > > Si il faut que je sois plus clair, hésitez pas...
> > > >
> > > > Merci d'avance...
> > > >
> > > >
> > > >
> > > >
> > > > ---
> > > > Message envoyé ne contenant aucun virus connu.
> > > > Checked by AVG anti-virus system (http://www.grisoft.com).
> > > > Version: 6.0.509 / Virus Database: 306 - Release Date: 12/08/2003
> > > >
> > > >
> > >
> > >
> >
> >
> > ---
> > Message envoyé ne contenant aucun virus connu.
> > Checked by AVG anti-virus system (http://www.grisoft.com).
> > Version: 6.0.509 / Virus Database: 306 - Release Date: 12/08/2003
> >
> >
>
>


---
Message envoyé ne contenant aucun virus connu.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.509 / Virus Database: 306 - Release Date: 12/08/2003