OVH Cloud OVH Cloud

debordement de pile

16 réponses
Avatar
ST
Bonjour,

J'ai écrit un prog en VB qui fonctionne bien ( télémesures ), sauf qu'au
bout de quelques heures de fonctionnement, j'ai un débordement de pile. Il
faut dire que c'est de la programmation recursive, et qu'il me sera
difficile de linéariser.

Quelle solution pour résoudre ou purger cette pile ?

D'avance merci

ST

10 réponses

1 2
Avatar
Patrice Henrio
Il faudrait tester régulièrement la mémoire disponible restant et en dessous
d'un certain seuil faire le ménage.

Il se peut aussi que des objets devenus inutiles ne soient pas détruits
(tableaux dynamiques par exemple) et de plus la programmation récursive
utilisant de nombreuses fois la même fonction, il est très possible que même
un objet de petite taille, dupliqué à plusieurs milliers d'exemplaires
finissent par saturer la mémoire.

Sinon vive la récursivité ...
"ST" a écrit dans le message de
news:
Bonjour,

J'ai écrit un prog en VB qui fonctionne bien ( télémesures ), sauf qu'au
bout de quelques heures de fonctionnement, j'ai un débordement de pile. Il
faut dire que c'est de la programmation recursive, et qu'il me sera
difficile de linéariser.

Quelle solution pour résoudre ou purger cette pile ?

D'avance merci

ST




Avatar
ST
Je n'ai pas de tableau dynamique, mais effectivement des variable de petites
taille certainement fortement dupliquées. ça fait une éternité que je galère
avec ça, si certains ont des idées, alors, je suis preneur...

"Patrice Henrio" a écrit dans le
message de news:
Il faudrait tester régulièrement la mémoire disponible restant et en


dessous
d'un certain seuil faire le ménage.

Il se peut aussi que des objets devenus inutiles ne soient pas détruits
(tableaux dynamiques par exemple) et de plus la programmation récursive
utilisant de nombreuses fois la même fonction, il est très possible que


même
un objet de petite taille, dupliqué à plusieurs milliers d'exemplaires
finissent par saturer la mémoire.

Sinon vive la récursivité ...
"ST" a écrit dans le message de
news:
> Bonjour,
>
> J'ai écrit un prog en VB qui fonctionne bien ( télémesures ), sauf qu'au
> bout de quelques heures de fonctionnement, j'ai un débordement de pile.


Il
> faut dire que c'est de la programmation recursive, et qu'il me sera
> difficile de linéariser.
>
> Quelle solution pour résoudre ou purger cette pile ?
>
> D'avance merci
>
> ST
>
>




Avatar
ng
Salut,

Il faudrait mettre des limites de profondeur pour tes appels récursifs, de
facon à ne pas dépasser la pile.

--
Nicolas G.
FAQ VB : http://faq.vb.free.fr
API Guide : http://www.allapi.net
Google Groups : http://groups.google.fr/
MZ-Tools : http://www.mztools.com/


ST wrote:
Bonjour,

J'ai écrit un prog en VB qui fonctionne bien ( télémesures ), sauf
qu'au bout de quelques heures de fonctionnement, j'ai un débordement
de pile. Il faut dire que c'est de la programmation recursive, et
qu'il me sera difficile de linéariser.

Quelle solution pour résoudre ou purger cette pile ?

D'avance merci

ST


Avatar
ST
N'étant pas un pro, comment on procède ?

"ng" a écrit dans le message de news:

Salut,

Il faudrait mettre des limites de profondeur pour tes appels récursifs, de
facon à ne pas dépasser la pile.

--
Nicolas G.
FAQ VB : http://faq.vb.free.fr
API Guide : http://www.allapi.net
Google Groups : http://groups.google.fr/
MZ-Tools : http://www.mztools.com/


ST wrote:
> Bonjour,
>
> J'ai écrit un prog en VB qui fonctionne bien ( télémesures ), sauf
> qu'au bout de quelques heures de fonctionnement, j'ai un débordement
> de pile. Il faut dire que c'est de la programmation recursive, et
> qu'il me sera difficile de linéariser.
>
> Quelle solution pour résoudre ou purger cette pile ?
>
> D'avance merci
>
> ST




Avatar
le_troll
Bonjour,

Tu as aussi je crois les variables de taille fixe qui sont empilées: (*
y)
dim x as string * y

--
Merci, @+, bye, Joe
troll75 AROBASE iFrance POINT com
------------------------------------------
Le_Troll, éleveur de Trolls depuis César, qui disait:
Avec une hache, celui qui tient le manche a toujours raison !


"ST" a écrit dans le message de
news:
Bonjour,

J'ai écrit un prog en VB qui fonctionne bien ( télémesures ), sauf qu'au
bout de quelques heures de fonctionnement, j'ai un débordement de pile. Il
faut dire que c'est de la programmation recursive, et qu'il me sera
difficile de linéariser.

Quelle solution pour résoudre ou purger cette pile ?

D'avance merci

ST




Avatar
ST
c'est possible, mais je pense que la solution est le suicide...

merci quand même....


"le_troll" a écrit dans le message de news:

Bonjour,

Tu as aussi je crois les variables de taille fixe qui sont empilées:


(*
y)
dim x as string * y

--
Merci, @+, bye, Joe
troll75 AROBASE iFrance POINT com
------------------------------------------
Le_Troll, éleveur de Trolls depuis César, qui disait:
Avec une hache, celui qui tient le manche a toujours raison !


"ST" a écrit dans le message de
news:
> Bonjour,
>
> J'ai écrit un prog en VB qui fonctionne bien ( télémesures ), sauf qu'au
> bout de quelques heures de fonctionnement, j'ai un débordement de pile.


Il
> faut dire que c'est de la programmation recursive, et qu'il me sera
> difficile de linéariser.
>
> Quelle solution pour résoudre ou purger cette pile ?
>
> D'avance merci
>
> ST
>
>




Avatar
le_troll
Eh oui, la vie est une maladie qui finit toujours très mal :o)

--
Merci, @+, bye, Joe
troll75 AROBASE iFrance POINT com
------------------------------------------
Le_Troll, éleveur de Trolls depuis César, qui disait:
Avec une hache, celui qui tient le manche a toujours raison !


"ST" a écrit dans le message de
news:
c'est possible, mais je pense que la solution est le suicide...

merci quand même....


"le_troll" a écrit dans le message de news:

> Bonjour,
>
> Tu as aussi je crois les variables de taille fixe qui sont empilées:
(*
> y)
> dim x as string * y
>
> --
> Merci, @+, bye, Joe
> troll75 AROBASE iFrance POINT com
> ------------------------------------------
> Le_Troll, éleveur de Trolls depuis César, qui disait:
> Avec une hache, celui qui tient le manche a toujours raison !
>
>
> "ST" a écrit dans le message de
> news:
> > Bonjour,
> >
> > J'ai écrit un prog en VB qui fonctionne bien ( télémesures ), sauf


qu'au
> > bout de quelques heures de fonctionnement, j'ai un débordement de


pile.
Il
> > faut dire que c'est de la programmation recursive, et qu'il me sera
> > difficile de linéariser.
> >
> > Quelle solution pour résoudre ou purger cette pile ?
> >
> > D'avance merci
> >
> > ST
> >
> >
>
>




Avatar
Christian HUBERT-HUGOUD- Xtrem7
Sans code, cela me semble difficile de t'aider.

"ST" a écrit dans le message de
news:
Bonjour,

J'ai écrit un prog en VB qui fonctionne bien ( télémesures ), sauf qu'au
bout de quelques heures de fonctionnement, j'ai un débordement de pile. Il
faut dire que c'est de la programmation recursive, et qu'il me sera
difficile de linéariser.

Quelle solution pour résoudre ou purger cette pile ?

D'avance merci

ST




Avatar
Jean-Marc
"ST" a écrit dans le message de
news:
Bonjour,

J'ai écrit un prog en VB qui fonctionne bien ( télémesures ), sauf qu'au
bout de quelques heures de fonctionnement, j'ai un débordement de pile. Il
faut dire que c'est de la programmation recursive, et qu'il me sera
difficile de linéariser.



Hello,

par curiosité et aussi pour pouvoir peut être aider, pourrais tu indiquer ce
que tu fais de récursif ?

--
Jean-marc
Avatar
Patrice Henrio
Pour pouvoir t'aider à limiter tes appels récursifs en profondeur, il faut
nécessairement nous donner un peu de ton code que l'on puisse voir quelles
variables ne sont pas à garder.
Utilisant la récursivité depuis 20 ans je pense pouvoir t'aider un peu.

Ta remarque parlant de tourner pendant plusieurs heures me laisse supposer
une absence de nettoyage dans les variables.
Sinon il faut moins de temps pour saturer la pile avec des appels récursifs.

"Jean-Marc" a écrit dans le message de
news:413f533d$0$4153$
"ST" a écrit dans le message de
news:
> Bonjour,
>
> J'ai écrit un prog en VB qui fonctionne bien ( télémesures ), sauf qu'au
> bout de quelques heures de fonctionnement, j'ai un débordement de pile.


Il
> faut dire que c'est de la programmation recursive, et qu'il me sera
> difficile de linéariser.
>
Hello,

par curiosité et aussi pour pouvoir peut être aider, pourrais tu indiquer


ce
que tu fais de récursif ?

--
Jean-marc




1 2