reflex69 Posted July 28, 2015 Share Posted July 28, 2015 Hello à tous :) Après mon premier message de présentation, passons aux choses sérieuses à savoir notre super Honor 6 dont j'ai récemment fait l'acquisition. Après mon dernier smartphone avec seulement 1GB que j'avais rooté pour essayer d'optimiser la gestion de mémoire plutôt limitée (ZRAM, LMK, paramètres kernel...) me voici donc avec un appareil disposant d'une mémoire confortable de 3GB. Ce qui m'amène à cette question : Pourquoi est ce que le task manager d'Android continue à killer des process alors qu'il reste encore plus de 1GB libre ? Ca parait contre productif pour l'OS de passer son temps à tuer et redémarrer des applications alors qu'il reste autant de mémoire libre (conso CPU, batterie...) Pour info je suis stock 4.4.2 B370 et non rooté en attendant la prochaine mise à jour L. Est ce que quelqu'un connaitrait les valeurs minfree paramétrées par défaut pour le Honor 6 s'il vous plait ? (nécessite root) Pour le moment j'ai vu qu'il n'y avait pas de swap compressé (zram) ce qui est une bonne chose et je n'ai pas non plus trouvé de process KSMD donc pas de déduplication de pages identiques, ce qui est également une bonne chose pour épargner le CPU et donc la batterie. Si vous avez plus d'infos pour comprendre pourquoi le task manager d'Android est aussi agressif pour killer les process malgré la confortable quantité de RAM je suis préneur :) 1 Quote Link to comment Share on other sites More sharing options...
itachiwaaa Posted July 28, 2015 Share Posted July 28, 2015 Je trouve ca assez foireux mais en fait pour éviter ce genre kill à la volée il faut que tu protéges tes applications. Pour faire cela il faut aller dans gestion de la.batterie et ensuite application autorisé à rester ouverte en veille. En faisant cela l'application ne sera pas tué quoi qu'il arrive. Cependant elle bouffe de la batterie quand ton téléphone est en veille. Pas génial génial Quote Link to comment Share on other sites More sharing options...
reflex69 Posted July 28, 2015 Author Share Posted July 28, 2015 (edited) Merci j'avais déjà vu cette option mais elle ne "protège" pas une application en cours de fonctionnement (donc avec écran allumé). J'ai fait le test simple avec le petit programme "Fill RAM memory" qui comme son nom l'indique remplie la mémoire. Chez moi quand il ne reste 'plus que' 720MB de libre alors cette appli qui est en cours d'exécution au premier plan (donc la plus haute priorité) est tuée automatiquement peu importe qu'elle soit protégée ou pas. Imaginez un programme important qui disparait sous vos yeux alors que vous travaillez dessus, surtout en sachant qu'il reste encore autant de mémoire libre ! C'est pourquoi je suis curieux de connaitre les valeurs minfree du Low Memory Killer dans le cas du Honor 6... Edited July 28, 2015 by reflex69 1 Quote Link to comment Share on other sites More sharing options...
Cseb95 Posted July 29, 2015 Share Posted July 29, 2015 (edited) Hello Bienvenue @@reflex69 . Tu as l'air d'être techniquement plus pointu que beaucoup d'entre nous ;-) Si tu peux nous indiquer comment récupérer cette valeur, je pourrais te la donner ;-) Edited July 29, 2015 by Cseb95 Quote Link to comment Share on other sites More sharing options...
reflex69 Posted July 29, 2015 Author Share Posted July 29, 2015 Hello Cseb95 :) S'intéresser à la technique ça peut être utile pour mieux comprendre et améliorer l'usage de nos appareils. Android est basé sur Linux avec quelques ajustements fait par Google pour l'adapter à l'usage mobile. Parmi ces différences il y a la philosophie de la gestion de la RAM. En effet, sous Android on jongle rapidement entre les applications (contacts, calendrier, photos...) et pour optimiser ces basculements il faut les conserver en mémoire. Pour faire simple plus la RAM est exploitée et mieux c'est. Car ce serait plus consommateur en CPU (et donc batterie) de démarrer et arrêter chaque application pour libérer la mémoire (comme c'est fait sous Windows par exemple) en plus d'être plus lent. Donc toute les applications qu'on utilise couramment doivent rester en mémoire RAM jusqu'à ce qu'il n'y ait plus assez de mémoire pour une nouvelle appli qui se lance. Et c'est là qu'intervient le module "Low Memory Killer" qui tue les process (selon un ordre de priorité) pour libérer la mémoire et sortir de cette situation de 'Out Of Memory'. Mais j'ai l'impression que sur Honor 6 le paramétrage du module LMK est trop agressif avec autant de RAM dispo (du coup on n'exploite jamais entièrement toute la RAM). Plus concrètement, pour voir ces valeurs (sur un mobile rooté) on peut utiliser une appli du playstore qui s'appelle "Kernel Adiutor" et qui s'appuie sur la boite à outils "BusyBox" qu'il faudra également installer (et qu'on pourra désinstaller après si plus besoin). Après avoir lancé Kernel Adiutor (et accordé root) il faut aller voir dans le menu "Low Memory Killer" et simplement faire une copie d'écran des 6 valeurs prédéfinies par défaut pour les minfree (dès que le minfree est atteint alors la catégorie des process correspondants sont tués). 1 Quote Link to comment Share on other sites More sharing options...
Cseb95 Posted July 29, 2015 Share Posted July 29, 2015 je n'avais pas du tout envie d'installer Xposed ;-) j'ai utilisé une autre appli : 2 Quote Link to comment Share on other sites More sharing options...
reflex69 Posted July 29, 2015 Author Share Posted July 29, 2015 (edited) Super ! Merci pour cette copie d'écran et ta réactivité :) D'après ces chiffres, le "tueur" est activé quand il ne reste plus que 120Mo de libre pour libérer la mémoire des applications vides (EMPTY_APP). Pour info ces app vides sont comme des zombies qui ne sont plus en cours d'exécution mais qui restent en mémoire en attendant que l'utilisateur les réactive (par exemple une lecture vidéo mise en attente pour passer un coup de fil). Ca favorise la vitesse du multitasking en gardant en mémoire toutes les applis même ceux qui ne sont plus en cours d'utilisation au lieu de les arrêter/redémarrer à chaque utilisation (pourquoi s'en priver si on a assez de mémoire). Dans le cas présent, les valeurs sont très bien ajustées donc pas besoin de les modifier :) Alors le problème du "tueur trop agressif" peut venir du task manager interne à Android qui lui aussi peut terminer des process sans attendre d'atteindre la limite de la mémoire qui active le LMK. Mais le fonctionnement du task manager d'Android est plus compliqué car il gère la liste des process selon différents critères de priorités liées à l'historique de chaque process... Du coup j'essaye de comprendre pourquoi mon process (en cours d'exécution au premier plan) a été tué sans pitié alors qu'il restait encore de la mémoire libre <_< Ca me démange de passer root pour voir ça de plus près :P Edited July 29, 2015 by reflex69 3 Quote Link to comment Share on other sites More sharing options...
mangroove Posted July 29, 2015 Share Posted July 29, 2015 (edited) @@reflex69 : En tout cas merci pour toutes les infos que tu as donné (et demandé) j'adore apprendre des trucs comme ça sur le fonctionnement d’Android :) Edited July 29, 2015 by Mangroove 1 Quote Link to comment Share on other sites More sharing options...
Cseb95 Posted July 29, 2015 Share Posted July 29, 2015 (edited) Si tu as besoin de plus d'info pas de souci. passer root avec la 3.0, t'obligera à une remise à zéro du H6 avant la màj 3.1. d'expérience avec la Beta, si le telephone est rooté, il vaut mieux reflasher le ROM 3.0 complète avant de faire la mise à jour sous peine de problèmes. Edited July 29, 2015 by Cseb95 1 Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.