IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Delphi Discussion :

Pertes de mémoire avec Rave


Sujet :

Delphi

  1. #1
    Futur Membre du Club
    Inscrit en
    Juin 2003
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Juin 2003
    Messages : 8
    Points : 5
    Points
    5
    Par défaut Pertes de mémoire avec Rave
    Bonjour,

    J'exécute des rapports avec Rave Report (version 6.0.3beta3) depuis un projet Delphi. La visualisation et/ou l'impression des rapports fonctionne très bien cependant, toute la mémoire utilisée n'est pas correctement libérée (je vois ceci à l'aide d'un utilitaire qui compte tout simplement le nombre d'allocations et le nombre de libération de mémoire).

    Apparemment, j'ai autant de "pertes de mémoire" que la nombre de composants présents sur le rapport multiplié par le nombre pages imprimées...

    J'ai essayé d'utilisé la propriété ProjectMan du composant TRvProject de Delphi mais sans succès.

    Merci par avance!

  2. #2
    Membre averti
    Inscrit en
    Novembre 2002
    Messages
    549
    Détails du profil
    Informations forums :
    Inscription : Novembre 2002
    Messages : 549
    Points : 436
    Points
    436
    Par défaut
    Bonjour,

    Et si tu essais de mettre à false tes TClientDataSets une fois que tu as exécuté ton projet rave ?

    Poste un bout de code aussi ce sera plus simple !
    PpPool

  3. #3
    Futur Membre du Club
    Inscrit en
    Juin 2003
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Juin 2003
    Messages : 8
    Points : 5
    Points
    5
    Par défaut
    Merci de m'avoir répondu.

    j'ai essayé cette solution, je "ferme" tous les TClientDataSet après l'impression, mais ça n'empêche pas les pertes de mémoire.
    D'ailleurs, j'ai utilisé le même utilitaire pour vérifier les allocations sur des projets exemple de rave, et il y a le même problème.

    C'est dommage qu'on ne puisse pas avoir un petit bout des sources de Rave!

    Sinon, pour le bout de code, je fais simplement:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    RvProject.ExecuteReport('Etat1');
    J'utilise des TClientDataSet créés dès la conception afin de les relier aux DataView dans Rave. Au niveau de Delphi, j'ai un TRvProject, un TRvSystem et des TRvDataSetConnection.

    J'ai également essayé un open puis un close sur le projet:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    RvProject.Open;
    RVProject.ExecuteReport('Etat1');
    RvProject.Close;
    Plus je lance d'impressions et plus les pertes de mémroire sont importantes, on dirait que tous les composants d'une page du rapport sont chargés en mémoire à chaque édition de la page...

    Je vais continuer à chercher! Merci

  4. #4
    Futur Membre du Club
    Inscrit en
    Juin 2003
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Juin 2003
    Messages : 8
    Points : 5
    Points
    5
    Par défaut
    Au fait, l'utilitaire que j'utilise pour détecter les pertes de mémoire est basé sur le TMemoryManager de Delphi (GetMemoryManager etc.).
    A priori il a fait ses preuves!

  5. #5
    Membre averti
    Inscrit en
    Novembre 2002
    Messages
    549
    Détails du profil
    Informations forums :
    Inscription : Novembre 2002
    Messages : 549
    Points : 436
    Points
    436
    Par défaut
    salut

    il y a un topic sur le site de nevrona sur des problèmes de mémoire avec des imprimantes postcripts
    http://nevrona.com/Default.aspx?tabid=78
    cela peut, peut-être t'aider

    Si tu enregistres par exemple tes états au lieu de les imprimer, est-ce que tu as le même problème

    @
    PpPool

  6. #6
    Futur Membre du Club
    Inscrit en
    Juin 2003
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Juin 2003
    Messages : 8
    Points : 5
    Points
    5
    Par défaut
    Merci de m'avoir répondu!

    En fait, j'avais pas pensé à tester cette solution! Mais ça ne marche pas mieux :-)
    En fait, à l'aide d'un autre outil de vérification de la mémoire, j'ai pu avoir le détail des allocations perdues: Rave fait un certain nombre de GetMem dans la méthode Execute et ne libère rien bien sûr... d'où les pertes de mémoire! Donc c'est vraiment très localisé.
    Je vais peut-être essayé d'écrire à Nevrona directement. J'ai testé leurs démos et c'est pire encore avec un GetListReport!

    Merci d'avoir cherché une solution!

  7. #7
    Membre averti
    Inscrit en
    Novembre 2002
    Messages
    549
    Détails du profil
    Informations forums :
    Inscription : Novembre 2002
    Messages : 549
    Points : 436
    Points
    436
    Par défaut
    Citation Envoyé par stepschn
    Merci de m'avoir répondu!

    En fait, j'avais pas pensé à tester cette solution! Mais ça ne marche pas mieux :-)
    En fait, à l'aide d'un autre outil de vérification de la mémoire, j'ai pu avoir le détail des allocations perdues: Rave fait un certain nombre de GetMem dans la méthode Execute et ne libère rien bien sûr... d'où les pertes de mémoire! Donc c'est vraiment très localisé.
    Je vais peut-être essayé d'écrire à Nevrona directement. J'ai testé leurs démos et c'est pire encore avec un GetListReport!

    Merci d'avoir cherché une solution!
    hum, ouaih c'est bizarre tout çà !
    Tu as essayé sur un autre poste ? autre OS ? De réintaller Rave ?

    @
    PpPool

  8. #8
    Futur Membre du Club
    Inscrit en
    Juin 2003
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Juin 2003
    Messages : 8
    Points : 5
    Points
    5
    Par défaut
    Là où je travaille, on avait déjà observé ce problème avec la version 5 de Rave...
    C'est peut-être lié à Windows XP, je ne sais pas...

    Merci!

  9. #9
    Membre régulier
    Profil pro
    Ingenieur developpement
    Inscrit en
    Septembre 2002
    Messages
    173
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Ingenieur developpement

    Informations forums :
    Inscription : Septembre 2002
    Messages : 173
    Points : 104
    Points
    104
    Par défaut
    j'utilise aussi le memoryManager et j'ai le même problème avec Rave.

    A partir du moment ou tu déposes un composant RvProject, même sans l'utiliser, tu perds de la mémoire. c'est un problème dans les sources de Rave et à moins qu'ils aient corrigé dans les dernières versions, on ne peut pas y faire grand chose.

Discussions similaires

  1. Dépassement de mémoire avec Rave 10.0.0
    Par benleq dans le forum Rave
    Réponses: 5
    Dernier message: 19/07/2012, 15h15
  2. [MS-XML] : perte mémoire avec msxml..
    Par jcd29 dans le forum Visual C++
    Réponses: 0
    Dernier message: 17/10/2009, 01h13
  3. Réponses: 11
    Dernier message: 16/07/2007, 16h33
  4. Problème de mémoire avec BDE
    Par Machuet dans le forum Bases de données
    Réponses: 3
    Dernier message: 13/07/2004, 10h11
  5. Comment bien gerer la mémoire avec les TStringList?
    Par david_chardonnet dans le forum Langage
    Réponses: 5
    Dernier message: 18/06/2003, 09h57

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo