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 :

Mémoire et ramasse miette (System.gc())


Sujet :

Android

  1. #1
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2014
    Messages
    521
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2014
    Messages : 521
    Points : 136
    Points
    136
    Par défaut Mémoire et ramasse miette (System.gc())
    Bonjour,

    J'ai cru comprendre que l'utilisation du ramasse miette manuellement était déconseillée.

    System.gc().

    Pourtant dans mon cas, c'est le seul moyen que j'ai trouvé afin d'éviter des saccades dans la GlSurfaceView.
    En effet, dans la fonction onDrawFrame(GL10 gl), lorsque je parcours les objets a dessiner, l'utilisation de la mémoire augmente puis, si je ne la nettoie pas manuellement depuis un autre thread à chaque boucle, lorsque la fonction gc() est appelée automatiquement semble-t-il, une saccade parvient, ce qui est problématique.

    L'utilisation manuelle du ramasse-miette fonctionne mais ralenti de façon considérable le traitement des données. J'ai également essayé de créer un thread spéciale pour son utilisation sans succès.

    Avez vous déjà eu ce genre de problème ou savez vous comment le régler sans utiliser System.gc() ?

    Merci

  2. #2
    Membre extrêmement actif
    Profil pro
    Développeur
    Inscrit en
    Mars 2012
    Messages
    1 969
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Mars 2012
    Messages : 1 969
    Points : 3 375
    Points
    3 375
    Par défaut
    C'est mieux de profiler ton programme et de corriger
    Sinon tu peux aussi utiliser le même process pour nettoyer le garbage collector.
    Dans le passé j'ai été confronté à ce problème en affichant des images.
    En cherchant un peu, il y avait une méthode pour vider le buffer...
    Si la réponse vous a aidé, pensez à cliquer sur +1

  3. #3
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2014
    Messages
    521
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2014
    Messages : 521
    Points : 136
    Points
    136
    Par défaut
    peux tu m'en dire un peu plus ?

  4. #4
    Membre extrêmement actif
    Profil pro
    Développeur
    Inscrit en
    Mars 2012
    Messages
    1 969
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Mars 2012
    Messages : 1 969
    Points : 3 375
    Points
    3 375
    Par défaut
    Tu dois analyser ton code avec tous les tools suivants:
    https://developer.android.com/studio/profile/ddms.html

    Tu as probablement des fuites mémoires (memory leaks).
    Si la réponse vous a aidé, pensez à cliquer sur +1

Discussions similaires

  1. Comment prévoir le passage du ramasse miettes ?
    Par montis dans le forum API standards et tierces
    Réponses: 6
    Dernier message: 11/04/2012, 11h55
  2. Optimiser le ramasse miettes
    Par ToTo13 dans le forum Général Java
    Réponses: 6
    Dernier message: 11/06/2011, 21h58
  3. Un ramasse miette en C
    Par Fused dans le forum Débuter
    Réponses: 17
    Dernier message: 27/11/2008, 19h24
  4. ramasse miette en langage c
    Par baylamat dans le forum C
    Réponses: 6
    Dernier message: 16/12/2006, 18h39

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