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

Android Discussion :

Gestion de gros fichiers


Sujet :

Android

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre émérite
    Avatar de bpy1401
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mars 2003
    Messages
    511
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2003
    Messages : 511
    Par défaut Gestion de gros fichiers
    Bonjour à tous.

    Ayant acquis dernièrement une tablette samsung android, je me lance dans la programmation sous android.

    Mon projet consiste à afficher un arbre généalogique. Pour cela je dois lire des fichiers au format GEDCOM. Sur PC, je sais très bien le faire, j'ai déjà une application java qui me génère une vue graphique de mon arbre dans un fichier PDF.

    Sur android, je me suis basé sur les même sources pour lire le gedcom, mais la, dommage cela fonctionne mais uniquement pour les petits fichiers. Et oui la mémoire n'a pas la même taille. Du coup avec les gros fichier (le miens fait 3mb) j'obtiens un out of memory.

    Le gedcom est un ficher texte. Quel solution pouvez vous préconiser pour extraire les informations dans ce fichiers.

    Moi, j'ai bien penser à indexé toutes les entrées que je souhaite utilisé, (par exemple, numéro de ligne de chaque entrée) et, quand j'en ai besoin de charger, uniquement les infos qui m’intéresse, mais je ne sais pas faire en JAVA.

    Ma cible pour le moment est galaxy Samsung V5.0 wifi

    merci d'avance pour votre aide.
    Page sur Developpez : http://pbriand.developpez.com

  2. #2
    Expert confirmé

    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Février 2007
    Messages
    4 253
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2007
    Messages : 4 253
    Billets dans le blog
    3
    Par défaut
    3M ne me semple pas très gros pour un fichier (certaines images sont bien plus grosses que cela)...

    Il y a peut-être une memory-leak ? Ou l'utilisation de trop de views ?

  3. #3
    Membre émérite
    Avatar de bpy1401
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mars 2003
    Messages
    511
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2003
    Messages : 511
    Par défaut
    Bonjour nicroman.

    Merci pour ta réponse.

    Comme toi, je pensais que 3 méga serait pas trop gros. mais cela bloque quand même. je n'ai pas écrit le parser de gedcom, il est fournit par les mormons (cela peut paraitre bizard, mais ce sont des pro de la généalogie est outils qui tournent autour), donc il m'est difficile de dire si j'ai des fuites mémoire. le Out of memory intervient pendant le parsing du fichier gedcom, donc proviens de leur libraire.

    Pense tu que je vais devoir ré ecrire un parseur de gedcom ?

    A+
    Page sur Developpez : http://pbriand.developpez.com

  4. #4
    Expert confirmé

    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Février 2007
    Messages
    4 253
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2007
    Messages : 4 253
    Billets dans le blog
    3
    Par défaut
    Si le parsing d'un fichier de 3Mo fait un un OutOfMemory, il y a des chances pour qu'il soit clairement à la rue....

    Je ne connais absolument pas le format en question, donc difficile d'évaluer, mais même 'inflated', je trouverai hallucinant qu'un fichier de 3Mo produise un OutOfMemory error.....

    Les sources de la librairie sont disponibles ?
    Quel est le format de sortir de la lib de lecture ? (pour moi c'est juste deux grosses tables de boites et de liens entre ces boites, avec éventuellement une liste de liens dans chaque boite histoire d'aller vite).

  5. #5
    Membre émérite
    Avatar de bpy1401
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mars 2003
    Messages
    511
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2003
    Messages : 511
    Par défaut
    bonjour

    Les sources sont disponibles ici

    le fichier gedcom n'est pas compressé, donc c'est 3mo de données à mémoriser, mais je ne pense pas qu'il a été écrit dans un but d'économiser de la mémoire.

    Dans l'exemple qu'ils donnent pour l'utilisation, la sorties sont des tableaux d'objets. Il y a plusieurs tableau (individus, famille, notes, événement, .. qui sont eux même constitué d'objets. Je suis convaincu, qu'ils dupliquent les objets pendant les traitements.

    je penche de plus en plus à réécrire cette libraire, et ne couvrir que ce qui m’intéresse. dans mon cas, 3mo, c'est un petit fichier contenant 3000 individus, certains fichier en contiennent 40000.

    a+ et merci pour ton aide
    Page sur Developpez : http://pbriand.developpez.com

  6. #6
    Modérateur
    Avatar de Hizin
    Homme Profil pro
    Développeur mobile
    Inscrit en
    Février 2010
    Messages
    2 180
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Développeur mobile

    Informations forums :
    Inscription : Février 2010
    Messages : 2 180
    Par défaut
    Fais un démon avec la commande Debug.getNativeHeapAllocatedSize().
    Tu peux aussi regarder (l'un n'exclue pas l'autre) l'utilisation mémoire via le DDMS (lance l'application, choisi le processus et clic sur l'icône en forme de cylindre vert au-dessus), et va sur l'onglet ... Heap ? Je ne sais plus trop son nom.

    Aussi, pourrais-tu mettre l'erreur, histoire de bien confirmer le OOM
    C'est Android, PAS Androïd, ou Androïde didiou !
    Le premier est un OS, le second est la mauvaise orthographe du troisième, un mot français désignant un robot à forme humaine.

    Membre du comité contre la phrase "ça marche PAS" en titre et/ou explication de problème.

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

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

Discussions similaires

  1. [Python 2.X] gestion de gros fichier
    Par vincenlnx dans le forum Général Python
    Réponses: 10
    Dernier message: 22/11/2014, 15h42
  2. Réponses: 26
    Dernier message: 30/09/2014, 16h57
  3. gestion de gros fichiers en C++
    Par buzzkaido dans le forum C++
    Réponses: 6
    Dernier message: 07/08/2012, 12h16
  4. Gestion des (gros) fichiers
    Par schneed dans le forum C++Builder
    Réponses: 1
    Dernier message: 23/02/2009, 20h05
  5. [Composants texte] Gestion de gros fichiers
    Par sozie9372 dans le forum Interfaces Graphiques en Java
    Réponses: 8
    Dernier message: 22/05/2006, 11h03

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