Le studio Android prend trop de mémoire

175

J'avais installé Android Studio 1.0 RC 2. J'ai 4 Go de RAM installés, mais après avoir démarré Android Studio et lancé Android Emulator, plus de 90% de la mémoire physique a été utilisée par ces deux seuls. Existe-t-il un moyen de réduire cette utilisation de la mémoire? En raison de ce problème de mémoire, je ne peux pas ouvrir d'autres applications en même temps. entrez la description de l'image ici

PPD
la source
17
Utiliser Eclipse ou Android Studio et un émulateur sur une machine de développement Windows de 4 Go sera très pénible. Je vous recommande fortement de mettre à niveau la RAM de votre machine de développement (8 Go ou plus), de tester sur un périphérique (au lieu d'un émulateur), ou de sauter l'IDE et de faire votre développement à l'aide d'un éditeur simple et d'outils de ligne de commande.
CommonsWare
2
Je suppose que vous utilisez Windows à en juger par la capture d'écran que vous avez publiée. Mais quelle version de Windows? De plus, étant donné qu'Android Studio n'en est qu'à ses débuts, vous rencontrerez de nombreux problèmes. Si vous n'avez pas besoin du support Gradle, vous pouvez toujours essayer Eclipse - l'EDI a fait ses preuves au fil des ans, il est donc assez solide pour un environnement de développement - en termes de RAM.
ChuongPham
1
@CommonsWare Savez-vous si la même chose est vraie pour les PC Linux? Merci d'avance.
Alexander Kulyakhtin
4
@PPD: sous Windows, désactivez les services inutiles via les outils d'administration | Option de services . Accédez à msconfiget désactivez les applications inutiles dans l' onglet Démarrage . Désactivez les effets visuels inutiles dans Windows. Lorsque vous exécutez un émulateur Android, activez l' option Utiliser le GPU hôte , en particulier si vous avez une carte graphique puissante. J'ai un PC de développement Windows 7 et je n'utilise que 2 à 2,5 Go de RAM à la fois, ce qui inclut: Windows 7, Eclipse, Mozilla Firefox (sans add-ons) et les étapes de personnalisation Windows que je viens de mentionner. J'utilise également Fedora et il utilise encore moins de mémoire que Windows.
ChuongPham
3
Juste une observation: je peux voir que vous avez quelques onglets Google Chrome ouverts. Vous constaterez peut- être que Firefox utilise un peu moins de RAM car il n'utilise pas de processus par onglet de navigateur.
Sam

Réponses:

224

J'utilise actuellement Android Studio sur une machine Windows 8.1 avec 6 Go de RAM.

J'ai trouvé que la désactivation de VCS dans le studio Android et l'utilisation d'un programme externe pour gérer VCS ont beaucoup aidé. Vous pouvez désactiver VCS en allant dans Fichier -> Paramètres -> Plugins et désactiver les éléments suivants:

  • Intégration CVS
  • Intégration Git
  • GitHub
  • Test Google Cloud
  • Google Cloud Tools Core
  • Google Cloud Tools pour Android Studio
  • hg4idea
  • Intégration Subversion
  • Intégration Mercurial
  • TestNG-J
jds17
la source
18
non, très petit changement.
krivar le
5
Énorme différence lorsque votre projet est configuré avec n'importe quel référentiel comme svn ou github. mon temps d'attente d'exécution réduit de> 3min à <1min. Merci beaucoup pour votre aide incroyable.
Euh. Kaushik Kajavadara
4
Cela semble fonctionner et fait une grande différence, même si j'ai gardé 'Git Integration' activé. Idéalement, Android Studio devrait avoir ces paramètres par défaut.
Mr-IDE
3
J'ai utilisé cette méthode pour le mini boîtier HP 6005 avec 4 Go de RAM et le processeur amd X4. après avoir désactivé tous ces plugins, mon studio Android s'est ouvert très très rapidement, je ne peux pas le croire. avant de démarrer le studio Android, prenez 15 secondes, mais maintenant, cela arrive en 1 seconde. merci
AN
2
Désactivez également l'intégration Mercurial, TestNG-J;
xiaoweiz
108

Dans mon cas, il y avait deux sources principales de monopolisation de la mémoire: l'IDE et Gradle:

Android Studio (jusqu'à 1,5 Go)

La JVM de l'EDI est configurée pour avoir une taille maximale de tas. Vous pouvez le voir dans le coin inférieur droit de l'interface principale:

Android Studio affichant une taille de tas maximale de 725 Mo

Vous pouvez réduire cela en modifiant les paramètres liés à la mémoire dans le .vmoptionsfichier . Par exemple, j'ai changé ma taille maximale de tas à 512 Mo:

-Xmx512m

Malheureusement, j'ai trouvé que la réduction de cette valeur augmentait la fréquence de gel temporaire d'Android Studio, peut-être pour faire son ramasse-miettes.

Gradle (jusqu'à 1,5 Go)

Gradle peut également utiliser beaucoup de RAM après avoir développé pendant un certain temps. Windows l'affiche simplement comme Java(TM) Platform SE Binary:

Gestionnaire de tâches Windows 8.1 affichant "Java (TM Platform SE binary" utilisant 1 460,5 Mo de mémoire

Vous pouvez résoudre ce problème en modifiant les options de Gradle JVM. Vous pouvez le faire pour chaque utilisateur en modifiant gradle.properties:

  1. Ouvrez le gradle.propertiesfichier et créez-le s'il n'existe pas:
    • Les fenêtres: %USERPROFILE%\.gradle\gradle.properties
    • Linux / Mac: ~/.gradle/gradle.properties
  2. Mettez à jour la org.gradle.jvmargspropriété, en la créant si nécessaire. J'ai mis le mien à ceci:

    org.gradle.jvmargs=-Xmx256m -XX:MaxPermSize=256m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8
    

Je n'ai remarqué aucune différence dans les performances de construction pour mon petit projet avec la taille maximale du tas définie à 256 Mo ( -Xmx256m).

Notez que vous devrez peut-être redémarrer Android Studio pour que l' ancien processus Gradle soit tué; sinon, vous risquez de vous retrouver avec les deux exécutés en même temps.

Émulateur

En ce qui concerne l'émulateur occupant une grande partie de votre RAM, votre capture d'écran montre qu'il prend environ 800 Mo. Vous pouvez choisir la quantité de RAM à allouer à l'émulateur:

  1. Modifier l'AVD
  2. Appuyez sur Afficher les paramètres avancés
  3. Réduisez la valeur de la RAM

Configuration de la RAM du périphérique virtuel Android

Sam
la source
Ceci, en conjonction avec la réponse de SoJexy, a considérablement augmenté les performances de mon ordinateur.
Josh Larson
Ces conseils ont sauvé la vie! Il existe également une option pour modifier la taille du tas utilisée par le compilateur dex, ce qui réduit encore l'utilisation de la mémoire. Détails: techzog.com/development/android-studio-high-ram-usage
Varun
1
Dans le .vmoptionsfichier, il est dit: *DO NOT* modify this file directly. If there is a value that you would like t$ please add it to your user specific configuration file. See http://tools.android.com/tech-docs/configurationCependant, comme il ne semble pas y avoir de fichier spécifique à l'utilisateur sur mon système et que le site Web n'explique aucun autre emplacement d'un tel fichier, je vais utiliser cette solution. Oh et: MaxPermSize sera obsolète à un moment donné. Il m'en avertit toujours lors du démarrage des IDE dans le terminal.
Zelphir Kaltstahl
1
@Zelphir, quel système d'exploitation et quelle version d'Android Studio utilisez-vous? J'utilise Windows et les instructions indiquent que le fichier est sous %USERPROFILE%, ce qui est spécifique à l'utilisateur. Je ne suis pas très doué pour Linux, mais les instructions Mac et Linux indiquent également que le fichier est sous ~, je suppose que c'est le répertoire personnel de l'utilisateur? Si le fichier n'est pas présent, vous pouvez peut-être simplement le créer; la documentation mentionnée ci-dessus dit Instead, you can customize the attributes by creating your own .properties or .vmoptions files in the following directories.. Pourriez-vous me dire si cela fonctionne afin que je puisse mettre à jour la réponse?
Sam
3
Super suggestions! Pour Gradle, j'ai résolu le problème d'une manière «à l'échelle de l'utilisateur» en éditant ~/.gradle/gradle.properties.
Andrea Lazzarotto
51

Vous pouvez accélérer votre travail sur Eclipse ou Android Studio, il vous suffit de suivre ces étapes:

  • Utiliser / ouvrir un seul projet à la fois
  • nettoyer votre projet après avoir exécuté votre application dans l'émulateur à chaque fois
  • utiliser un appareil mobile / externe au lieu de l'émulateur
  • ne fermez pas l'émulateur après l'avoir utilisé une fois, utilisez le même émulateur pour exécuter l'application à chaque fois
  • Désactivez VCS en utilisant File-> Settings-> Plugins et désactivez les éléments suivants:
    1.CVS Integration
    2.Git Integration
    3.GitHub
    4.Google Cloud Tools for Android Studio
    5.Subversion Integration

J'utilise également Android Studio avec 4 Go de mémoire principale installée, mais suivre ces déclarations améliore vraiment mes performances Android Studio.

KulArtiste
la source
1
J'ai désactivé toutes les choses de la liste. Il utilise toujours la même chose autour de 1,5 Go de RAM
Arshad
@ arshadkazmi42 dites-moi la configuration de votre PC
KulArtist
i3, 4 Go de RAM, 500 Go de disque dur
Arshad
13
Je pense que c'est complètement absurde de dire que le "i3" est la cause des échecs dans la fabrication du logiciel!
XMight
1
Mon processeur i3 veut défier votre> i3, voulez-vous accepter ce défi? Personne ne dira que i3 cause un ralentissement ou une prise de mémoire élevée ...
Sabir Hossain
28

Android Studio a récemment publié un guide officiel pour les machines à faible mémoire: Guide

Si vous exécutez Android Studio sur une machine dont les spécifications sont inférieures aux spécifications recommandées (voir Configuration système requise), vous pouvez personnaliser l'EDI pour améliorer les performances de votre machine, comme suit:

  • Réduire la taille maximale du tas disponible pour Android Studio : réduisez la taille maximale du tas pour Android Studio à 512 Mo.

  • Mettez à jour Gradle et le plug-in Android pour Gradle : mettez à jour les dernières versions de Gradle et le plug-in Android pour Gradle pour vous assurer que vous profitez des dernières améliorations en matière de performances.

  • Activer le mode d'économie d'énergie : L'activation du mode d'économie d'énergie désactive un certain nombre d'opérations en arrière-plan gourmandes en mémoire et en batterie, y compris la mise en évidence des erreurs et les inspections à la volée, l'achèvement du code de saisie automatique et la compilation incrémentielle automatique en arrière-plan. Pour activer le mode d'économie d'énergie, cliquez sur Fichier> Mode d'économie d'énergie.

  • Désactiver les vérifications de peluches inutiles : pour modifier les vérifications de peluches qu'Android Studio exécute sur votre code, procédez comme suit: Cliquez sur Fichier> Paramètres (sur un Mac, Android Studio> Préférences) pour ouvrir la boîte de dialogue Paramètres.Dans le volet gauche, développez la section Éditeur et cliquez sur Inspections. Cliquez sur les cases à cocher pour sélectionner ou désélectionner les vérifications de peluches en fonction de votre projet. Cliquez sur Appliquer ou sur OK pour enregistrer vos modifications.

  • Déboguer sur un appareil physique : le débogage sur un émulateur utilise plus de mémoire que le débogage sur un appareil physique, vous pouvez donc améliorer les performances globales d'Android Studio en déboguant sur un appareil physique.

  • N'incluez que les services Google Play nécessaires en tant que dépendances : l'inclusion des services Google Play en tant que dépendances dans votre projet augmente la quantité de mémoire nécessaire. N'incluez que les dépendances nécessaires pour améliorer l'utilisation de la mémoire et les performances. Pour plus d'informations, consultez Ajouter des services Google Play à votre projet.

  • Réduisez la taille maximale du tas disponible pour la compilation de fichiers DEX : définissez javaMaxHeapSize pour la compilation de fichiers DEX sur 200 m. Pour plus d'informations, consultez Améliorer les temps de génération en configurant les ressources DEX .

  • N'activez pas la compilation parallèle : Android Studio peut compiler des modules indépendants en parallèle, mais si vous avez un système à faible mémoire, vous ne devez pas activer cette fonctionnalité. Pour vérifier ce paramètre, procédez comme suit: Cliquez sur Fichier> Paramètres (sur un Mac, Android Studio> Préférences) pour ouvrir la boîte de dialogue Paramètres. Dans le volet gauche, développez Génération, Exécution, Déploiement, puis cliquez sur Compilateur. Assurez-vous que l'option Compiler les modules indépendants en parallèle n'est pas cochée. Si vous avez effectué une modification, cliquez sur Appliquer ou sur OK pour que votre modification prenne effet.

  • Activer le mode hors ligne pour Gradle : si vous avez un commutateur de bande limité, activez le mode hors ligne pour empêcher Gradle de tenter de télécharger les dépendances manquantes pendant votre construction. Lorsque le mode hors ligne est activé, Gradle émettra un échec de compilation s'il vous manque des dépendances, au lieu d'essayer de les télécharger. Pour activer le mode hors ligne, procédez comme suit:

    • Cliquez sur Fichier> Paramètres (sur un Mac, Android Studio> Préférences) pour ouvrir la boîte de dialogue Paramètres.

    • Dans le volet gauche, développez Build, Execution, Deployment, puis cliquez sur Gradle.

    • Sous Paramètres globaux de Gradle, cochez la case Travail hors ligne.

    • Cliquez sur Appliquer ou sur OK pour que vos modifications prennent effet.

Androidmeda
la source
16

J'ai utilisé toutes les recommandations de Sam ci-dessus, mais j'ai trouvé que les options de ligne de commande VM ne sont plus prises en charge comme décrit. (J'ai reçu une erreur lors de l'utilisation)

Comme alternative, j'ai pu réduire considérablement le gradle en ajoutant la ligne suivante au fichier "gradle.properties"

org.gradle.jvmargs=-Xms512m -Xmx1024m

Depuis la version 1.3 de l'AS, le fichier se trouve au même niveau de dossier que "gradle.build".

La configuration ci-dessus est une "pile de mémoire" de 512 Mo et un "tas de mémoire" de 1024 Mo.

J'ai testé cela sur un petit projet, en utilisant des paramètres où les deux tailles de mémoire étaient définies sur 256 méga. Il a limité les tailles de JVM comme prévu. Dans tous mes tests, j'ai redémarré AS pour forcer le redémarrage de la JVM.

Espérons que cela évitera aux autres personnes confrontées à ce problème d’obtenir les réponses «Obtenez un meilleur ordinateur». :-)

Dilber

SpacemanScott
la source
Merci; cela a fonctionné pour moi dans AS 1.3! J'ai mis à jour les instructions dans ma réponse pour couvrir cette méthode car je n'ai trouvé aucun autre moyen de le faire dans AS 1.3.
Sam
2

J'ai Android Studio 2.1.1 Bro utiliser l'émulateur genymotion It Faster If Use Android Marshmallow. Et My Ram est de 4 Go. Et installez le plug-in pour genymotion dans Android Studio.Vous verrez de bons résultats au lieu de perdre du temps au démarrage d'android emualtor, cela prendra 5 minutes.

pseudo
la source
3
Comme c'est gratuit.
Ojonugwa Jude Ochalifu
Genymotion n'est pas plus rapide en performances. L'émulateur est, mais oui, il démarre plus vite que ARM et très vite que les émulateurs de studio Android IntelX86 et X64.
Mahdi-Malv
2

Pour réduire le décalage, je recommanderais les étapes suivantes

Spécifications de mon pc: 2 Go de RAM, processeur: Intel Core2 Duo

d'abord tuer tous les processus d'arrière-plan, si vous avez un serveur ou une base de données en cours d'exécution, vous pouvez les arrêter d'abord avec les commandes suivantes

sudo service apache2 arrêt

arrêt sudo service mysql

Ensuite, activez le mode d'économie d'énergie dans Android Studio par fichier> mode d'économie d'énergie

Cela pourrait désactiver le processus d'arrière-plan, puis le studio semble bien se passer

Naveen
la source
Je ne comprends pas pourquoi nous devons activerPower Save Mode
Morozov
Morozov, si nous activons le mode d'économie d'énergie, il tue les activités d'arrière-plan du studio Android, donc il améliorera ses performances
Naveen
oui, le mode d'économie d'énergie arrête ces processus
Naveen
2

Pour exécuter l'environnement Android sur une machine à faible configuration.

  1. Fermez les onglets Web inutiles dans le navigateur
  2. Pour les utilisateurs d'Antivirus, excluez le dossier de construction qui est généré automatiquement
  3. Les studios Android ont un tas par défaut de 1,2 Go pouvant diminuer à 512 Mo

Aide> Modifier les options de VM personnalisées

studio.vmoptions
 -Xmx512m

La performance des mises en page sera accélérée

  1. Pour Gradle, l'un des principaux composants du studio Android Mkae, comme pour le moment, la version 3.0beta est la dernière

Les conseils ci-dessous peuvent affecter la qualité du code, veuillez donc les utiliser avec précautions:

  1. Studio contient le mode sans échec de l'alimentation lorsqu'il est activé, il fermera les opérations d'arrière-plan qui peluchent, codent les compléments, etc.

  2. Vous pouvez exécuter manuellement la vérification des peluches si nécessaire ./gradlew lint

  3. La plupart utilisent des émulateurs Android en moyenne, ils consomment en moyenne 2 Go de RAM, donc si possible, utilisez un appareil Android réel, cela réduira la charge de vos ressources sur votre ordinateur. Sinon, vous pouvez réduire la RAM de l'émulateur et cela réduira automatiquement la consommation de mémoire virtuelle sur votre ordinateur. vous pouvez le trouver dans la configuration de l'appareil virtuel et dans les paramètres avancés.

  4. Le mode hors ligne Gradle est une fonctionnalité permettant aux utilisateurs à bande passante limitée de désactiver le téléchargement des dépendances de construction. Cela réduira le fonctionnement en arrière-plan qui aidera à augmenter les performances du studio Android.

  5. Le studio Android propose une optimisation pour compiler plusieurs modules en parallèle. Sur les machines à faible RAM, cette fonctionnalité aura probablement un impact négatif sur les performances. Vous pouvez le désactiver dans la boîte de dialogue des paramètres du compilateur .

Smit Patel
la source
"studio.vmoptions -Xmx512m" a tué le studio Android pour moi. N'ouvrira plus "Impossible de créer JVM: code d'erreur -1". Comment puis-je annuler ce changement?
MeatPopsicle
1
Au cas où quelqu'un d'autre tomberait dans le même piège. Vous pouvez le réparer en accédant à C: \ Users \ <username> \ .AndroidStudio <version> \ config et en recherchant un fichier .vmoptions. Si cela correspond à la configuration que vous venez d'ajouter, vous pouvez probablement le supprimer en toute sécurité
MeatPopsicle
1

Essayez de basculer votre JVM sur eclipse openj9. Ça va utiliser beaucoup moins de mémoire. Je l'ai échangé et il utilise 600 Mo en permanence.

Vijay Britto
la source
1

Je ne sais pas si c'est une solution mais Invalidate Cache and Restartj'ai résolu ce problème dans mon cas. J'utilise actuellement Android Studio 3.6

Aziz
la source
0

Ouvrez ci-dessous le chemin de mention sur votre système et supprimez tous vos avd (Périphériques virtuels: émulateur)

C: \ Users {Nom d'utilisateur} .android \ avd

Remarque: - La suppression de l'émulateur uniquement à partir du studio Android ne supprimera pas tous les espaces capturés par leurs avd. Supprimez donc tous les avd du chemin donné ci-dessus, puis créez un nouvel émulateur, si vous en avez besoin.

Narender Gusain
la source