Procedure Too Large

Résolu
cs_lacomm Messages postés 298 Date d'inscription lundi 14 juin 2004 Statut Membre Dernière intervention 5 juillet 2013 - 20 juil. 2006 à 10:45
cs_lacomm Messages postés 298 Date d'inscription lundi 14 juin 2004 Statut Membre Dernière intervention 5 juillet 2013 - 20 juil. 2006 à 12:50
Salut à tous


Je travaille en VB6 et j'ai le message "procedure too large" qaund je lance l'interpréteur.

J'ai découpé ma procédure en fonctions, essayé d'optimiser le code et
c'est vrai que j'ai pu gagner quelques lignes. Néanmoins, ce n'est pas
suffisant et je devrais encore découper en fonctions, mais ca me prend
énormément de temps. Ne pourrait-on pas augmenter la mémoire de
l'application comme en MAC ? En fait, une fois que le programme est
compilé, il marche sans problème, mais je me vois mal compiler à chaque
modification.

merci de votre aide

3 réponses

cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 40
20 juil. 2006 à 11:23
Je ne pense pas que ton problème vienne de XP.

J'ai eu parfois le même message d'erreur sous NT4.

Je pense que ça viens bien de VB6.

C'est souvent du à une procédure trop importante en lignes de code (il faut donc découper en sous procédures et optimiser le code car il a été mal pensé), mais ça peut etre du aussi une imbrication trop importantes de boucles, ou des appels réentrant de ta procédure, ou bien d'autre causes qui ont toutes pour point commun, un code mal pensé et pas optimisé. Généralement tu as une erreur concernat le dépassement de pile mais tu peux aussi avoir ce genre de message.

Sevyc64  (alias Casy)

<hr /># LE PARTAGE EST NOTRE FORCE #
3
cs_lacomm Messages postés 298 Date d'inscription lundi 14 juin 2004 Statut Membre Dernière intervention 5 juillet 2013 1
20 juil. 2006 à 10:55
Oui en fait si je comprends bien c'est plutôt un problème de windows qu'un problème de VB6:

On va tordre le cou ici à des mythes concernant les programmes qui
libèrent la RAM sous XP. En effet, XP va utiliser toute la mémoire RAM
possible selon l'adage "de la mémoire RAM libre est de la mémoire
gaspillée".


En pratique, imaginez que vous ouvrez un gros fichier avec Word. XP va
charger Word en mémoire, puis, votre fichier. Vous quittez Word, XP va
laisser en mémoire le programme Word et votre fichier, dans la zone du
cache disque. Il ne les éjectera que si un autre programme doit être
exécuté et qu'il n'y a plus de RAM disponible, le cache disque va alors
diminuer de taille. Le terme "mémoire RAM libre" est donc impropre, il
est plus correct de dire "mémoire pour laquelle XP n'a pas encore
trouvé d'usage". Voilà pourquoi les programmes censés libérer de la RAM
sont des leurres, au pire, ils font grossir le pagefile inutilement et
les performances sont réduites, exactement l'inverse de l'effet attendu.
0
cs_lacomm Messages postés 298 Date d'inscription lundi 14 juin 2004 Statut Membre Dernière intervention 5 juillet 2013 1
20 juil. 2006 à 12:50
merci à toi,

oui c'est vrai le code est une suite de conditions, que j'ai
redistribuée en partie dans des fonctions, mais j'espérais une solution
plus rapide, (qui serait surement possible sous mac) même si c'est pas
très élégant.
0
Rejoignez-nous