2 messages in org.openoffice.fr.progFuite de memoire avec Basic
FromSent OnAttachments
Bernard MarcellyJan 15, 2007 2:36 am 
Laurent GodardJan 15, 2007 3:14 am 
Actions with this message:
Paste this link in email or IM:
Paste this link in email or IM:
Atom feed for this thread
Paste this URL into your reader:
Subject:Fuite de memoire avec BasicActions...
From:Bernard Marcelly (marc@club-internet.fr)
Date:Jan 15, 2007 2:36:23 am
List:org.openoffice.fr.prog

Bonjour, Je voudrais attirer votre attention sur l'Issue 73457 qui signale un défaut potentiellement gênant: en Basic chaque appel d'un sous-programme (Sub ou Function) fait perdre quelques centaines d'octets.

Ce n'est pas grave pour la plupart des applications Basic. C'est plus gênant si on a une boucle appelant des milliers de fois une Sub ou plusieurs. Exemple extrême:

Sub Main dim n as long for n = 1 to 1000000 Macro1(n) next print "Terminé" End Sub

Sub Macro1(p as long) ' ne fait rien End Sub

Si vous surveillez l'occupation mémoire, (sous Windows XP en utilisant le gestionnaire de tâches) vous verrez une augmentation progressive de l'occupation mémoire, plusieurs centaines de Mo dans ce cas d'école. Cas plus réaliste : Xray ThisComponent Il suffit de basculer l'affichage Xray de Propriétés à Méthodes une vingtaine de fois pour perdre une dizaine de Mo.

Les pertes de mémoire sont cumulatives, le seul moyen de la récupérer est l'arrêt complet d'OpenOffice.org. Si vous utilisez le Quick Starter (Windows), il faut le fermer pour arrêter OOo. Si vous utilisez OpenOffice en serveur pour lancer un traitement Basic complexe, vous pouvez ainsi perdre progressivement de la mémoire.

Le problème est aussi ancien que les versions 1.1.x mais a seulement été découvert récemment. Vous pouvez apporter votre vote à l'Issue 73457.

Bernard