OVH Cloud OVH Cloud

Pb de mémoire

15 réponses
Avatar
Faure-vincent Pascal
Bonjours j'ai un petit souci d'utilisation de la mémoire sous .net.

J'ai un service NT qui expose des service métiers ( sans état) . ces objets
métiers sont des singletons dans le service NT. Lorsque j'utilise ces objets
sur un client par remoting . La mémoire du service NT augmente a chaque
appelle de méthode. j'ai beau faire une méthode avec un garbage collector
dedans çà ne fait rien. Et au bout d'un certain nombre d'appelle de méthode
par remoting la mémoire est saturée. si quelqu'un pouvait m'indiquer une
piste à suivre pour résoudre ce prblème çà serait avec plaisir.
Pascal

5 réponses

1 2
Avatar
Frederic Melantois
Puisque vous faîtes une boucle avec des objets couteux, il vous faut
finalizer vous-même vos objets et disposer vos ressources.
Pour cela, il y a pas mal d'explications sur le pattern Dispose
(implémentation de l'interface IDisposable) dans le lien que je vous ai
donné.
Il est recommandé de désinscrire (par GC.SuppressFinalize) l'objet de la
liste des instances à finalizer par le garbage collector. Sinon, le garbage
collector essaiera par la suite de finaliser à nouveau...

Frédéric Mélantois

"Faure-vincent Pascal" a écrit dans le
message de news:
C'est sympa d'y avoir passé du temps.
En effet quand je mets le GC.SuppressFinalize(e) la mémoire n'augmente
plus.
Mais le finalize des objets ne sera pas éxécuté c'est çà ?
c'est pas bon çà quand penses-tu ?
PS
je vais lire le lien que tu m'as donné.


"Frederic Melantois" a écrit dans le message
de news:cbgjfk$v72$
> Le problème n'est pas lié au remoting
>
> Ajouter un GC.SupressFinalize dans votre boucle.
>
> <code>
> public class Model
> {
> private Bitmap bitm;
> public Model()
> {
> bitm = new Bitmap(500,500);
> }
> ~Model()
> {
> bitm.Dispose();
> }
> }
> ...
>
> public override void Essai()
> {
> int i=0;
> while (i<1000)
> {
> Model e=new Model();
> GC.SuppressFinalize(e);
> i++;
> }
> GC.Collect();
> }
>
> </code>
>
> Frédéric Mélantois
>
> ps : J'ai mis un peu de temps pour trouver ;-) surtout que j'étais parti
sur
> de fausses pistes. Le garbage a ses limites. Il faut bien le comprendre.
>



http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnpag/html/scalenetchapt05.asp
> un guide bien utile.
>
> "Faure-vincent Pascal" a écrit dans
le
> message de news:%
> > J'ai l'impression qu'en remoting comme il y a plusieurs thread le GC


ne
se
> > déclenche pas. Et je ne sais pas comment faire
> > pascal
> >
> >
> > "Frederic Melantois" a écrit dans le
message
> > de news:cbek29$abe$
> > > Bonjour,
> > >
> > > Vous dites "ces objets" mais si vous êtes en mode singleton, un seul
> objet
> > > est intancié.
> > >
> > > En mode singleton, il faut gérer les accès concurrents.
> > >
> > > Pouvez-vous nous donner plus de détails sur votre code ?
> > >
> > > Frédéric Mélantois
> > >
> > >
> > > "Faure-vincent Pascal" a écrit
dans
> > le
> > > message de news:u$
> > > > J'ai l'impression de le garbage ne ce fait pas quand il y a du
> remoting
> > .
> > > > C'est bizzard
> > > >
> > > > "Faure-vincent Pascal" a


écrit
> dans
> > > le
> > > > message de news:
> > > > > Non il n'y a pas d'interop. C'est uniquement du code managé. Le
> > > singleton
> > > > > est activé dans la service NT ( donc server activated).
> > > > > Ces objets dans le service NT appellent une couche d'accès aux
> > données->
> > > > > sqlserveur 2000. Cette couche DAL est hébergée dans le même
service.
> > > > > pascal
> > > > >
> > > > >
> > > > >
> > > > > "Eric Mittelette[MS)" a écrit dans le
> message
> > > de
> > > > > news:eYweZ$
> > > > > > Salut,
> > > > > >
> > > > > > Plusieurs pistes à explorer:
> > > > > > Quel sont les objets utilisé dans ton singleton, y aurait


il
> des
> > > > phase
> > > > > > d'interop, d'appel a des objets COM ? auquel cas il faut
vérifier
> > les
> > > > > > dispose...
> > > > > > Le singleton est en client activated ou server activated,


si
> > c'est
> > > > le
> > > > > > premier cas, comment ezst il libéré ?
> > > > > >
> > > > > > ERic
> > > > > > "Faure-vincent Pascal"
wrote
> in
> > > > > message
> > > > > > news:%
> > > > > > > Bonjours j'ai un petit souci d'utilisation de la mémoire


sous
> > .net.
> > > > > > >
> > > > > > > J'ai un service NT qui expose des service métiers ( sans


état)
.
> > ces
> > > > > > objets
> > > > > > > métiers sont des singletons dans le service NT. Lorsque
> j'utilise
> > > ces
> > > > > > objets
> > > > > > > sur un client par remoting . La mémoire du service NT


augmente
a
> > > > chaque
> > > > > > > appelle de méthode. j'ai beau faire une méthode avec un
garbage
> > > > > collector
> > > > > > > dedans çà ne fait rien. Et au bout d'un certain nombre
d'appelle
> > de
> > > > > > méthode
> > > > > > > par remoting la mémoire est saturée. si quelqu'un pouvait
> > m'indiquer
> > > > une
> > > > > > > piste à suivre pour résoudre ce prblème çà serait avec
plaisir.
> > > > > > > Pascal
> > > > > > >
> > > > > > >
> > > > > > >
> > > > > >
> > > > > >
> > > > >
> > > > >
> > > >
> > > >
> > >
> > >
> >
> >
>
>




Avatar
Faure-vincent Pascal
Bon je vais lire tout çà et je te remercie
pascal

"Frederic Melantois" a écrit dans le message
de news:cbgokg$2fe$
Puisque vous faîtes une boucle avec des objets couteux, il vous faut
finalizer vous-même vos objets et disposer vos ressources.
Pour cela, il y a pas mal d'explications sur le pattern Dispose
(implémentation de l'interface IDisposable) dans le lien que je vous ai
donné.
Il est recommandé de désinscrire (par GC.SuppressFinalize) l'objet de la
liste des instances à finalizer par le garbage collector. Sinon, le


garbage
collector essaiera par la suite de finaliser à nouveau...

Frédéric Mélantois

"Faure-vincent Pascal" a écrit dans


le
message de news:
> C'est sympa d'y avoir passé du temps.
> En effet quand je mets le GC.SuppressFinalize(e) la mémoire n'augmente
> plus.
> Mais le finalize des objets ne sera pas éxécuté c'est çà ?
> c'est pas bon çà quand penses-tu ?
> PS
> je vais lire le lien que tu m'as donné.
>
>
> "Frederic Melantois" a écrit dans le


message
> de news:cbgjfk$v72$
> > Le problème n'est pas lié au remoting
> >
> > Ajouter un GC.SupressFinalize dans votre boucle.
> >
> > <code>
> > public class Model
> > {
> > private Bitmap bitm;
> > public Model()
> > {
> > bitm = new Bitmap(500,500);
> > }
> > ~Model()
> > {
> > bitm.Dispose();
> > }
> > }
> > ...
> >
> > public override void Essai()
> > {
> > int i=0;
> > while (i<1000)
> > {
> > Model e=new Model();
> > GC.SuppressFinalize(e);
> > i++;
> > }
> > GC.Collect();
> > }
> >
> > </code>
> >
> > Frédéric Mélantois
> >
> > ps : J'ai mis un peu de temps pour trouver ;-) surtout que j'étais


parti
> sur
> > de fausses pistes. Le garbage a ses limites. Il faut bien le


comprendre.
> >
>



http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnpag/html/scalenetchapt05.asp
> > un guide bien utile.
> >
> > "Faure-vincent Pascal" a écrit


dans
> le
> > message de news:%
> > > J'ai l'impression qu'en remoting comme il y a plusieurs thread le GC
ne
> se
> > > déclenche pas. Et je ne sais pas comment faire
> > > pascal
> > >
> > >
> > > "Frederic Melantois" a écrit dans le
> message
> > > de news:cbek29$abe$
> > > > Bonjour,
> > > >
> > > > Vous dites "ces objets" mais si vous êtes en mode singleton, un


seul
> > objet
> > > > est intancié.
> > > >
> > > > En mode singleton, il faut gérer les accès concurrents.
> > > >
> > > > Pouvez-vous nous donner plus de détails sur votre code ?
> > > >
> > > > Frédéric Mélantois
> > > >
> > > >
> > > > "Faure-vincent Pascal" a


écrit
> dans
> > > le
> > > > message de news:u$
> > > > > J'ai l'impression de le garbage ne ce fait pas quand il y a du
> > remoting
> > > .
> > > > > C'est bizzard
> > > > >
> > > > > "Faure-vincent Pascal" a
écrit
> > dans
> > > > le
> > > > > message de news:
> > > > > > Non il n'y a pas d'interop. C'est uniquement du code managé.


Le
> > > > singleton
> > > > > > est activé dans la service NT ( donc server activated).
> > > > > > Ces objets dans le service NT appellent une couche d'accès aux
> > > données->
> > > > > > sqlserveur 2000. Cette couche DAL est hébergée dans le même
> service.
> > > > > > pascal
> > > > > >
> > > > > >
> > > > > >
> > > > > > "Eric Mittelette[MS)" a écrit dans le
> > message
> > > > de
> > > > > > news:eYweZ$
> > > > > > > Salut,
> > > > > > >
> > > > > > > Plusieurs pistes à explorer:
> > > > > > > Quel sont les objets utilisé dans ton singleton, y


aurait
il
> > des
> > > > > phase
> > > > > > > d'interop, d'appel a des objets COM ? auquel cas il faut
> vérifier
> > > les
> > > > > > > dispose...
> > > > > > > Le singleton est en client activated ou server


activated,
si
> > > c'est
> > > > > le
> > > > > > > premier cas, comment ezst il libéré ?
> > > > > > >
> > > > > > > ERic
> > > > > > > "Faure-vincent Pascal"
> wrote
> > in
> > > > > > message
> > > > > > > news:%
> > > > > > > > Bonjours j'ai un petit souci d'utilisation de la mémoire
sous
> > > .net.
> > > > > > > >
> > > > > > > > J'ai un service NT qui expose des service métiers ( sans
état)
> .
> > > ces
> > > > > > > objets
> > > > > > > > métiers sont des singletons dans le service NT. Lorsque
> > j'utilise
> > > > ces
> > > > > > > objets
> > > > > > > > sur un client par remoting . La mémoire du service NT
augmente
> a
> > > > > chaque
> > > > > > > > appelle de méthode. j'ai beau faire une méthode avec un
> garbage
> > > > > > collector
> > > > > > > > dedans çà ne fait rien. Et au bout d'un certain nombre
> d'appelle
> > > de
> > > > > > > méthode
> > > > > > > > par remoting la mémoire est saturée. si quelqu'un pouvait
> > > m'indiquer
> > > > > une
> > > > > > > > piste à suivre pour résoudre ce prblème çà serait avec
> plaisir.
> > > > > > > > Pascal
> > > > > > > >
> > > > > > > >
> > > > > > > >
> > > > > > >
> > > > > > >
> > > > > >
> > > > > >
> > > > >
> > > > >
> > > >
> > > >
> > >
> > >
> >
> >
>
>




Avatar
Faure-vincent Pascal
J'ai complété un peu mon test en rajoutant les objets dans une Arraylist
et la par contre la mémoire augmente considérablement.
J'ai beau lire je ne vois pas ou çà pêche
pascal
public override void Essai()

{
Model e;
ArrayList es;
es=new ArrayList();
int i=0;
while (i<100000)
{
e=new Model();
es.Add(e);
i++;
}
}

"Frederic Melantois" a écrit dans le message
de news:cbgokg$2fe$
Puisque vous faîtes une boucle avec des objets couteux, il vous faut
finalizer vous-même vos objets et disposer vos ressources.
Pour cela, il y a pas mal d'explications sur le pattern Dispose
(implémentation de l'interface IDisposable) dans le lien que je vous ai
donné.
Il est recommandé de désinscrire (par GC.SuppressFinalize) l'objet de la
liste des instances à finalizer par le garbage collector. Sinon, le


garbage
collector essaiera par la suite de finaliser à nouveau...

Frédéric Mélantois

"Faure-vincent Pascal" a écrit dans


le
message de news:
> C'est sympa d'y avoir passé du temps.
> En effet quand je mets le GC.SuppressFinalize(e) la mémoire n'augmente
> plus.
> Mais le finalize des objets ne sera pas éxécuté c'est çà ?
> c'est pas bon çà quand penses-tu ?
> PS
> je vais lire le lien que tu m'as donné.
>
>
> "Frederic Melantois" a écrit dans le


message
> de news:cbgjfk$v72$
> > Le problème n'est pas lié au remoting
> >
> > Ajouter un GC.SupressFinalize dans votre boucle.
> >
> > <code>
> > public class Model
> > {
> > private Bitmap bitm;
> > public Model()
> > {
> > bitm = new Bitmap(500,500);
> > }
> > ~Model()
> > {
> > bitm.Dispose();
> > }
> > }
> > ...
> >
> > public override void Essai()
> > {
> > int i=0;
> > while (i<1000)
> > {
> > Model e=new Model();
> > GC.SuppressFinalize(e);
> > i++;
> > }
> > GC.Collect();
> > }
> >
> > </code>
> >
> > Frédéric Mélantois
> >
> > ps : J'ai mis un peu de temps pour trouver ;-) surtout que j'étais


parti
> sur
> > de fausses pistes. Le garbage a ses limites. Il faut bien le


comprendre.
> >
>



http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnpag/html/scalenetchapt05.asp
> > un guide bien utile.
> >
> > "Faure-vincent Pascal" a écrit


dans
> le
> > message de news:%
> > > J'ai l'impression qu'en remoting comme il y a plusieurs thread le GC
ne
> se
> > > déclenche pas. Et je ne sais pas comment faire
> > > pascal
> > >
> > >
> > > "Frederic Melantois" a écrit dans le
> message
> > > de news:cbek29$abe$
> > > > Bonjour,
> > > >
> > > > Vous dites "ces objets" mais si vous êtes en mode singleton, un


seul
> > objet
> > > > est intancié.
> > > >
> > > > En mode singleton, il faut gérer les accès concurrents.
> > > >
> > > > Pouvez-vous nous donner plus de détails sur votre code ?
> > > >
> > > > Frédéric Mélantois
> > > >
> > > >
> > > > "Faure-vincent Pascal" a


écrit
> dans
> > > le
> > > > message de news:u$
> > > > > J'ai l'impression de le garbage ne ce fait pas quand il y a du
> > remoting
> > > .
> > > > > C'est bizzard
> > > > >
> > > > > "Faure-vincent Pascal" a
écrit
> > dans
> > > > le
> > > > > message de news:
> > > > > > Non il n'y a pas d'interop. C'est uniquement du code managé.


Le
> > > > singleton
> > > > > > est activé dans la service NT ( donc server activated).
> > > > > > Ces objets dans le service NT appellent une couche d'accès aux
> > > données->
> > > > > > sqlserveur 2000. Cette couche DAL est hébergée dans le même
> service.
> > > > > > pascal
> > > > > >
> > > > > >
> > > > > >
> > > > > > "Eric Mittelette[MS)" a écrit dans le
> > message
> > > > de
> > > > > > news:eYweZ$
> > > > > > > Salut,
> > > > > > >
> > > > > > > Plusieurs pistes à explorer:
> > > > > > > Quel sont les objets utilisé dans ton singleton, y


aurait
il
> > des
> > > > > phase
> > > > > > > d'interop, d'appel a des objets COM ? auquel cas il faut
> vérifier
> > > les
> > > > > > > dispose...
> > > > > > > Le singleton est en client activated ou server


activated,
si
> > > c'est
> > > > > le
> > > > > > > premier cas, comment ezst il libéré ?
> > > > > > >
> > > > > > > ERic
> > > > > > > "Faure-vincent Pascal"
> wrote
> > in
> > > > > > message
> > > > > > > news:%
> > > > > > > > Bonjours j'ai un petit souci d'utilisation de la mémoire
sous
> > > .net.
> > > > > > > >
> > > > > > > > J'ai un service NT qui expose des service métiers ( sans
état)
> .
> > > ces
> > > > > > > objets
> > > > > > > > métiers sont des singletons dans le service NT. Lorsque
> > j'utilise
> > > > ces
> > > > > > > objets
> > > > > > > > sur un client par remoting . La mémoire du service NT
augmente
> a
> > > > > chaque
> > > > > > > > appelle de méthode. j'ai beau faire une méthode avec un
> garbage
> > > > > > collector
> > > > > > > > dedans çà ne fait rien. Et au bout d'un certain nombre
> d'appelle
> > > de
> > > > > > > méthode
> > > > > > > > par remoting la mémoire est saturée. si quelqu'un pouvait
> > > m'indiquer
> > > > > une
> > > > > > > > piste à suivre pour résoudre ce prblème çà serait avec
> plaisir.
> > > > > > > > Pascal
> > > > > > > >
> > > > > > > >
> > > > > > > >
> > > > > > >
> > > > > > >
> > > > > >
> > > > > >
> > > > >
> > > > >
> > > >
> > > >
> > >
> > >
> >
> >
>
>




Avatar
Faure-vincent Pascal
Hello
est-t-il envisageable de mettre un timer qui par exemple tout les 10 minutes
effectue un Gc.Collect().
car on ne sais pas trop quand un gc se déclenche et si on fait une arraylist
dans une méthode du service NT cela prends une place énorme
pascal
Ps.
Où existe un paramètre pour déclencher le GC plus souvent


"Frederic Melantois" a écrit dans le message
de news:cbgjfk$v72$
Le problème n'est pas lié au remoting

Ajouter un GC.SupressFinalize dans votre boucle.

<code>
public class Model
{
private Bitmap bitm;
public Model()
{
bitm = new Bitmap(500,500);
}
~Model()
{
bitm.Dispose();
}
}
...

public override void Essai()
{
int i=0;
while (i<1000)
{
Model e=new Model();
GC.SuppressFinalize(e);
i++;
}
GC.Collect();
}

</code>

Frédéric Mélantois

ps : J'ai mis un peu de temps pour trouver ;-) surtout que j'étais parti


sur
de fausses pistes. Le garbage a ses limites. Il faut bien le comprendre.



http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnpag/html/scalenetchapt05.asp
un guide bien utile.

"Faure-vincent Pascal" a écrit dans


le
message de news:%
> J'ai l'impression qu'en remoting comme il y a plusieurs thread le GC ne


se
> déclenche pas. Et je ne sais pas comment faire
> pascal
>
>
> "Frederic Melantois" a écrit dans le


message
> de news:cbek29$abe$
> > Bonjour,
> >
> > Vous dites "ces objets" mais si vous êtes en mode singleton, un seul
objet
> > est intancié.
> >
> > En mode singleton, il faut gérer les accès concurrents.
> >
> > Pouvez-vous nous donner plus de détails sur votre code ?
> >
> > Frédéric Mélantois
> >
> >
> > "Faure-vincent Pascal" a écrit


dans
> le
> > message de news:u$
> > > J'ai l'impression de le garbage ne ce fait pas quand il y a du
remoting
> .
> > > C'est bizzard
> > >
> > > "Faure-vincent Pascal" a écrit
dans
> > le
> > > message de news:
> > > > Non il n'y a pas d'interop. C'est uniquement du code managé. Le
> > singleton
> > > > est activé dans la service NT ( donc server activated).
> > > > Ces objets dans le service NT appellent une couche d'accès aux
> données->
> > > > sqlserveur 2000. Cette couche DAL est hébergée dans le même


service.
> > > > pascal
> > > >
> > > >
> > > >
> > > > "Eric Mittelette[MS)" a écrit dans le
message
> > de
> > > > news:eYweZ$
> > > > > Salut,
> > > > >
> > > > > Plusieurs pistes à explorer:
> > > > > Quel sont les objets utilisé dans ton singleton, y aurait il
des
> > > phase
> > > > > d'interop, d'appel a des objets COM ? auquel cas il faut


vérifier
> les
> > > > > dispose...
> > > > > Le singleton est en client activated ou server activated, si
> c'est
> > > le
> > > > > premier cas, comment ezst il libéré ?
> > > > >
> > > > > ERic
> > > > > "Faure-vincent Pascal"


wrote
in
> > > > message
> > > > > news:%
> > > > > > Bonjours j'ai un petit souci d'utilisation de la mémoire sous
> .net.
> > > > > >
> > > > > > J'ai un service NT qui expose des service métiers ( sans état)


.
> ces
> > > > > objets
> > > > > > métiers sont des singletons dans le service NT. Lorsque
j'utilise
> > ces
> > > > > objets
> > > > > > sur un client par remoting . La mémoire du service NT augmente


a
> > > chaque
> > > > > > appelle de méthode. j'ai beau faire une méthode avec un


garbage
> > > > collector
> > > > > > dedans çà ne fait rien. Et au bout d'un certain nombre


d'appelle
> de
> > > > > méthode
> > > > > > par remoting la mémoire est saturée. si quelqu'un pouvait
> m'indiquer
> > > une
> > > > > > piste à suivre pour résoudre ce prblème çà serait avec


plaisir.
> > > > > > Pascal
> > > > > >
> > > > > >
> > > > > >
> > > > >
> > > > >
> > > >
> > > >
> > >
> > >
> >
> >
>
>




Avatar
Frederic Melantois
La doc que je vous ai indiqué précise entre autres :

- d'éviter les objets coûteux en mémoire
- de libérer les ressources non managées mais aussi de disposer les objets
occupant une grande place mémoire (j'avais pris l'exemple d'une Bitmap)
- d'éviter de multiplier le nombre d'objet

Il faut que vous travailliez en ce sens pour améliorer les performances.

Frédéric Mélantois

"Faure-vincent Pascal" a écrit dans le
message de news:%
J'ai complété un peu mon test en rajoutant les objets dans une Arraylist
et la par contre la mémoire augmente considérablement.
J'ai beau lire je ne vois pas ou çà pêche
pascal
public override void Essai()

{
Model e;
ArrayList es;
es=new ArrayList();
int i=0;
while (i<100000)
{
e=new Model();
es.Add(e);
i++;
}
}

"Frederic Melantois" a écrit dans le message
de news:cbgokg$2fe$
> Puisque vous faîtes une boucle avec des objets couteux, il vous faut
> finalizer vous-même vos objets et disposer vos ressources.
> Pour cela, il y a pas mal d'explications sur le pattern Dispose
> (implémentation de l'interface IDisposable) dans le lien que je vous ai
> donné.
> Il est recommandé de désinscrire (par GC.SuppressFinalize) l'objet de la
> liste des instances à finalizer par le garbage collector. Sinon, le
garbage
> collector essaiera par la suite de finaliser à nouveau...
>
> Frédéric Mélantois
>
> "Faure-vincent Pascal" a écrit dans
le
> message de news:
> > C'est sympa d'y avoir passé du temps.
> > En effet quand je mets le GC.SuppressFinalize(e) la mémoire


n'augmente
> > plus.
> > Mais le finalize des objets ne sera pas éxécuté c'est çà ?
> > c'est pas bon çà quand penses-tu ?
> > PS
> > je vais lire le lien que tu m'as donné.
> >
> >
> > "Frederic Melantois" a écrit dans le
message
> > de news:cbgjfk$v72$
> > > Le problème n'est pas lié au remoting
> > >
> > > Ajouter un GC.SupressFinalize dans votre boucle.
> > >
> > > <code>
> > > public class Model
> > > {
> > > private Bitmap bitm;
> > > public Model()
> > > {
> > > bitm = new Bitmap(500,500);
> > > }
> > > ~Model()
> > > {
> > > bitm.Dispose();
> > > }
> > > }
> > > ...
> > >
> > > public override void Essai()
> > > {
> > > int i=0;
> > > while (i<1000)
> > > {
> > > Model e=new Model();
> > > GC.SuppressFinalize(e);
> > > i++;
> > > }
> > > GC.Collect();
> > > }
> > >
> > > </code>
> > >
> > > Frédéric Mélantois
> > >
> > > ps : J'ai mis un peu de temps pour trouver ;-) surtout que j'étais
parti
> > sur
> > > de fausses pistes. Le garbage a ses limites. Il faut bien le
comprendre.
> > >
> >
>



http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnpag/html/scalenetchapt05.asp
> > > un guide bien utile.
> > >
> > > "Faure-vincent Pascal" a écrit
dans
> > le
> > > message de news:%
> > > > J'ai l'impression qu'en remoting comme il y a plusieurs thread le


GC
> ne
> > se
> > > > déclenche pas. Et je ne sais pas comment faire
> > > > pascal
> > > >
> > > >
> > > > "Frederic Melantois" a écrit dans le
> > message
> > > > de news:cbek29$abe$
> > > > > Bonjour,
> > > > >
> > > > > Vous dites "ces objets" mais si vous êtes en mode singleton, un
seul
> > > objet
> > > > > est intancié.
> > > > >
> > > > > En mode singleton, il faut gérer les accès concurrents.
> > > > >
> > > > > Pouvez-vous nous donner plus de détails sur votre code ?
> > > > >
> > > > > Frédéric Mélantois
> > > > >
> > > > >
> > > > > "Faure-vincent Pascal" a
écrit
> > dans
> > > > le
> > > > > message de news:u$
> > > > > > J'ai l'impression de le garbage ne ce fait pas quand il y a du
> > > remoting
> > > > .
> > > > > > C'est bizzard
> > > > > >
> > > > > > "Faure-vincent Pascal" a
> écrit
> > > dans
> > > > > le
> > > > > > message de news:
> > > > > > > Non il n'y a pas d'interop. C'est uniquement du code managé.
Le
> > > > > singleton
> > > > > > > est activé dans la service NT ( donc server activated).
> > > > > > > Ces objets dans le service NT appellent une couche d'accès


aux
> > > > données->
> > > > > > > sqlserveur 2000. Cette couche DAL est hébergée dans le même
> > service.
> > > > > > > pascal
> > > > > > >
> > > > > > >
> > > > > > >
> > > > > > > "Eric Mittelette[MS)" a écrit dans


le
> > > message
> > > > > de
> > > > > > > news:eYweZ$
> > > > > > > > Salut,
> > > > > > > >
> > > > > > > > Plusieurs pistes à explorer:
> > > > > > > > Quel sont les objets utilisé dans ton singleton, y
aurait
> il
> > > des
> > > > > > phase
> > > > > > > > d'interop, d'appel a des objets COM ? auquel cas il faut
> > vérifier
> > > > les
> > > > > > > > dispose...
> > > > > > > > Le singleton est en client activated ou server
activated,
> si
> > > > c'est
> > > > > > le
> > > > > > > > premier cas, comment ezst il libéré ?
> > > > > > > >
> > > > > > > > ERic
> > > > > > > > "Faure-vincent Pascal"



> > wrote
> > > in
> > > > > > > message
> > > > > > > > news:%
> > > > > > > > > Bonjours j'ai un petit souci d'utilisation de la mémoire
> sous
> > > > .net.
> > > > > > > > >
> > > > > > > > > J'ai un service NT qui expose des service métiers ( sans
> état)
> > .
> > > > ces
> > > > > > > > objets
> > > > > > > > > métiers sont des singletons dans le service NT. Lorsque
> > > j'utilise
> > > > > ces
> > > > > > > > objets
> > > > > > > > > sur un client par remoting . La mémoire du service NT
> augmente
> > a
> > > > > > chaque
> > > > > > > > > appelle de méthode. j'ai beau faire une méthode avec un
> > garbage
> > > > > > > collector
> > > > > > > > > dedans çà ne fait rien. Et au bout d'un certain nombre
> > d'appelle
> > > > de
> > > > > > > > méthode
> > > > > > > > > par remoting la mémoire est saturée. si quelqu'un


pouvait
> > > > m'indiquer
> > > > > > une
> > > > > > > > > piste à suivre pour résoudre ce prblème çà serait avec
> > plaisir.
> > > > > > > > > Pascal
> > > > > > > > >
> > > > > > > > >
> > > > > > > > >
> > > > > > > >
> > > > > > > >
> > > > > > >
> > > > > > >
> > > > > >
> > > > > >
> > > > >
> > > > >
> > > >
> > > >
> > >
> > >
> >
> >
>
>




1 2