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

Eclipse Platform Discussion :

Explosion mémoire avec IDocument


Sujet :

Eclipse Platform

  1. #1
    Rédacteur/Modérateur

    Avatar de alain.bernard
    Homme Profil pro
    Ingénieur aéronautique
    Inscrit en
    Décembre 2011
    Messages
    749
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur aéronautique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Décembre 2011
    Messages : 749
    Points : 5 219
    Points
    5 219
    Par défaut Explosion mémoire avec IDocument
    Bonjour,

    J'ai une application qui nécessite de traiter un grand nombre de fichiers en lecture, sans les ouvrir dans des éditeurs.

    Afin de profiter de la puissance de l'API IDocument d'Eclipse, j'ai réussi à obtenir ces éléments sans ouverture des éditeurs, grâce au ITextFileBufferManager.

    Problème : l'application prend rapidement une place monstrueuse en mémoire, puisqu'un IDocument stocke directement tout le contenu du fichier (si j'ai bien compris).
    La solution serait donc de pouvoir "détruire" ces objets après l'extraction des données du fichier. Je sais que je pourrais utiliser directement les classiques BufferedReader mais l'avantage des IDocument est de pouvoir aller directement à une ligne donnée, effectuer une recherche, etc...

    Quelqu'un saurait-il m'indiquer comment gérer ce cas de figure ?

    Merci d'avance pour votre aide.
    Pas de messages techniques par MP, les forums sont là pour ça.
    Rédacteur d'articles sur la plateforme Eclipse

    N'oubliez pas de consulter les FAQ Eclipse et les cours et tutoriels Eclipse

  2. #2
    Membre émérite
    Avatar de Mickael_Istria
    Homme Profil pro
    Développeur Expert Eclipse IDE/RCP, pour Red Hat
    Inscrit en
    Juillet 2008
    Messages
    1 469
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Expert Eclipse IDE/RCP, pour Red Hat
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 469
    Points : 2 997
    Points
    2 997
    Par défaut
    Tu as besoin d'avoir tous ces fichiers ouverts en meme temps? Est-ce que les fichiers sont gros (ie plus gros que ce que tu as de RAM) ?
    Si non, je pense qu'il faut juste que tu verifies que tu fais bien les close() et/ou dispose() sur tes documents, buffers, stream & cie. La memoire sera liberee et utilisable pour la suite de ton traitement.

    Si oui a l'une des 2 reponses, il faut songer a une autre approche, car tu ne pourras pas compter sur ta RAM pour faire ce traitement. Quelques suggestions: faire plusieurs passes, du "Diviser pour regner" ou tu finis par traiter des fichiers 2 a 2, parser les fichiers pour avoir des objets plutot que du textes (si tu trouves un bon modele)...
    Pour du HTML, CSS, JavaScript, TypeScript, JSon, Yaml, Node... dans Eclipse IDE, installe Eclipse Wild Web Developer
    Pour du Rust dans Eclipse IDE, installe Eclipse Corrosion
    Follow me on twitter

  3. #3
    Rédacteur/Modérateur

    Avatar de alain.bernard
    Homme Profil pro
    Ingénieur aéronautique
    Inscrit en
    Décembre 2011
    Messages
    749
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur aéronautique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Décembre 2011
    Messages : 749
    Points : 5 219
    Points
    5 219
    Par défaut
    Salut,

    Le problème est que je ne peux pas appeler la méthode dispose() sur des objets IDocument, ni sur les TextFileBuffer qui servent à leur ouverture.
    Ceci étant, le temps de chargement de chaque fichier en mémoire était quand même long, indépendamment de la conso mémoire, du coup je suis resté sur des bons vieux BufferedReader.

    Problème "résolu" donc merci de ton aide
    Pas de messages techniques par MP, les forums sont là pour ça.
    Rédacteur d'articles sur la plateforme Eclipse

    N'oubliez pas de consulter les FAQ Eclipse et les cours et tutoriels Eclipse

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Crystal Report]Problème de mémoire avec le moteur RDC
    Par sur_uix dans le forum SAP Crystal Reports
    Réponses: 3
    Dernier message: 26/05/2005, 09h09
  2. 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
  3. Problémes mémoire avec le bde sur des bases paradox
    Par Keke des Iles dans le forum Bases de données
    Réponses: 2
    Dernier message: 27/05/2004, 16h55
  4. Problème mémoire avec une dll par chargement dynamique
    Par widze19 dans le forum C++Builder
    Réponses: 6
    Dernier message: 15/12/2003, 13h20
  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