Enviar pesquisa
Carregar
Breizhcamp 2017 - Comment j’ai diminué la consommation d'énergie d'une application native Google Android (et pourquoi) ?
•
1 gostou
•
330 visualizações
Olivier Philippot
Seguir
Présentatio n
Leia menos
Leia mais
Software
Denunciar
Compartilhar
Denunciar
Compartilhar
1 de 34
Baixar agora
Baixar para ler offline
Recomendados
ET13 - MC1 - Piloter sa performance digitale
ET13 - MC1 - Piloter sa performance digitale
Rencontres Nationales du etourisme institutionnel
Parlons App Economie : du dev à l'usage
Parlons App Economie : du dev à l'usage
LaFrenchMobile
Tester, Monitorer et Déployer son application mobile
Tester, Monitorer et Déployer son application mobile
Microsoft
Microsoft experiences'16 - Tester, Monitorer et Déployer son application mobile
Microsoft experiences'16 - Tester, Monitorer et Déployer son application mobile
Adrien Siffermann
Intro Android
Intro Android
Patrick Bashizi
Développement d'applications mobiles.. Environnement de programmation visuelle
Développement d'applications mobiles.. Environnement de programmation visuelle
REGIONAL ACADEMY OF EDUCATION AND TRAINING
[TNT19] Hands on: Objectif Top Architecte!
[TNT19] Hands on: Objectif Top Architecte!
Alexandre Touret
Vous avez dit IHM ?
Vous avez dit IHM ?
ludolmn
Recomendados
ET13 - MC1 - Piloter sa performance digitale
ET13 - MC1 - Piloter sa performance digitale
Rencontres Nationales du etourisme institutionnel
Parlons App Economie : du dev à l'usage
Parlons App Economie : du dev à l'usage
LaFrenchMobile
Tester, Monitorer et Déployer son application mobile
Tester, Monitorer et Déployer son application mobile
Microsoft
Microsoft experiences'16 - Tester, Monitorer et Déployer son application mobile
Microsoft experiences'16 - Tester, Monitorer et Déployer son application mobile
Adrien Siffermann
Intro Android
Intro Android
Patrick Bashizi
Développement d'applications mobiles.. Environnement de programmation visuelle
Développement d'applications mobiles.. Environnement de programmation visuelle
REGIONAL ACADEMY OF EDUCATION AND TRAINING
[TNT19] Hands on: Objectif Top Architecte!
[TNT19] Hands on: Objectif Top Architecte!
Alexandre Touret
Vous avez dit IHM ?
Vous avez dit IHM ?
ludolmn
Introduction à l'ergonomie - Drupal Lyon
Introduction à l'ergonomie - Drupal Lyon
Olivier Lorrain
Retour d'expérience sur la conception et la construction d'une application ME...
Retour d'expérience sur la conception et la construction d'une application ME...
Microsoft Technet France
Android workshop - Bootcamp du Mauriapp Challenge 2016
Android workshop - Bootcamp du Mauriapp Challenge 2016
Hadina RIMTIC
Devops, ça change quoi pour moi développeur ?
Devops, ça change quoi pour moi développeur ?
antony_guilloteau
Reboot your mobile app or not? - Mobile PM meetup by Thiga (sept 2016)
Reboot your mobile app or not? - Mobile PM meetup by Thiga (sept 2016)
Alexandre Takacs
Introduction à l'agilité numélink - 24 mai 2012 - #3 etapes proj
Introduction à l'agilité numélink - 24 mai 2012 - #3 etapes proj
agnes_crepet
Dimo fiche maint_app_2016_fr_web
Dimo fiche maint_app_2016_fr_web
Soft Institute - Informática e Serviços, Lda
#3 etapes projet
#3 etapes projet
agnes_crepet
android.pdf
android.pdf
med_univ78
SymBiOT-X portfolio
SymBiOT-X portfolio
SymBiOT-X
"Introduction aux Developements iOS" in Three hours
"Introduction aux Developements iOS" in Three hours
Laurent MEURISSE
2-historique d'android.pdf
2-historique d'android.pdf
FethiBenYahia1
ActionBar Android
ActionBar Android
ODC Orange Developer Center
[WEBINAR] Kaliterre : 10 raisons d'intégrer l'éco-conception logicielle
[WEBINAR] Kaliterre : 10 raisons d'intégrer l'éco-conception logicielle
GreenLabCenter
Meetup #1 low-code, Pourquoi ? Pour qui ? Comment ? Rencontrons-nous !
Meetup #1 low-code, Pourquoi ? Pour qui ? Comment ? Rencontrons-nous !
Simplicité Software
Une application sans framework en 2019
Une application sans framework en 2019
Rodrigue Villetard
Etude Stardust
Etude Stardust
Mobile Marketing Association France
Présentation stardust
Présentation stardust
Mobile Marketing Association France
Niji rapport de prévention 2021 - android 12
Niji rapport de prévention 2021 - android 12
Gabriel DUPONT
Plasticité2014 part4vf
Plasticité2014 part4vf
Atelier IHM Polytech Nice Sophia
DevFest Toulouse - Comment être une développeuse (un développeur) ethique et ...
DevFest Toulouse - Comment être une développeuse (un développeur) ethique et ...
Olivier Philippot
IotCeption - Energy Measurement of Android Things on Raspberry PI 3 with Ardu...
IotCeption - Energy Measurement of Android Things on Raspberry PI 3 with Ardu...
Olivier Philippot
Mais conteúdo relacionado
Semelhante a Breizhcamp 2017 - Comment j’ai diminué la consommation d'énergie d'une application native Google Android (et pourquoi) ?
Introduction à l'ergonomie - Drupal Lyon
Introduction à l'ergonomie - Drupal Lyon
Olivier Lorrain
Retour d'expérience sur la conception et la construction d'une application ME...
Retour d'expérience sur la conception et la construction d'une application ME...
Microsoft Technet France
Android workshop - Bootcamp du Mauriapp Challenge 2016
Android workshop - Bootcamp du Mauriapp Challenge 2016
Hadina RIMTIC
Devops, ça change quoi pour moi développeur ?
Devops, ça change quoi pour moi développeur ?
antony_guilloteau
Reboot your mobile app or not? - Mobile PM meetup by Thiga (sept 2016)
Reboot your mobile app or not? - Mobile PM meetup by Thiga (sept 2016)
Alexandre Takacs
Introduction à l'agilité numélink - 24 mai 2012 - #3 etapes proj
Introduction à l'agilité numélink - 24 mai 2012 - #3 etapes proj
agnes_crepet
Dimo fiche maint_app_2016_fr_web
Dimo fiche maint_app_2016_fr_web
Soft Institute - Informática e Serviços, Lda
#3 etapes projet
#3 etapes projet
agnes_crepet
android.pdf
android.pdf
med_univ78
SymBiOT-X portfolio
SymBiOT-X portfolio
SymBiOT-X
"Introduction aux Developements iOS" in Three hours
"Introduction aux Developements iOS" in Three hours
Laurent MEURISSE
2-historique d'android.pdf
2-historique d'android.pdf
FethiBenYahia1
ActionBar Android
ActionBar Android
ODC Orange Developer Center
[WEBINAR] Kaliterre : 10 raisons d'intégrer l'éco-conception logicielle
[WEBINAR] Kaliterre : 10 raisons d'intégrer l'éco-conception logicielle
GreenLabCenter
Meetup #1 low-code, Pourquoi ? Pour qui ? Comment ? Rencontrons-nous !
Meetup #1 low-code, Pourquoi ? Pour qui ? Comment ? Rencontrons-nous !
Simplicité Software
Une application sans framework en 2019
Une application sans framework en 2019
Rodrigue Villetard
Etude Stardust
Etude Stardust
Mobile Marketing Association France
Présentation stardust
Présentation stardust
Mobile Marketing Association France
Niji rapport de prévention 2021 - android 12
Niji rapport de prévention 2021 - android 12
Gabriel DUPONT
Plasticité2014 part4vf
Plasticité2014 part4vf
Atelier IHM Polytech Nice Sophia
Semelhante a Breizhcamp 2017 - Comment j’ai diminué la consommation d'énergie d'une application native Google Android (et pourquoi) ?
(20)
Introduction à l'ergonomie - Drupal Lyon
Introduction à l'ergonomie - Drupal Lyon
Retour d'expérience sur la conception et la construction d'une application ME...
Retour d'expérience sur la conception et la construction d'une application ME...
Android workshop - Bootcamp du Mauriapp Challenge 2016
Android workshop - Bootcamp du Mauriapp Challenge 2016
Devops, ça change quoi pour moi développeur ?
Devops, ça change quoi pour moi développeur ?
Reboot your mobile app or not? - Mobile PM meetup by Thiga (sept 2016)
Reboot your mobile app or not? - Mobile PM meetup by Thiga (sept 2016)
Introduction à l'agilité numélink - 24 mai 2012 - #3 etapes proj
Introduction à l'agilité numélink - 24 mai 2012 - #3 etapes proj
Dimo fiche maint_app_2016_fr_web
Dimo fiche maint_app_2016_fr_web
#3 etapes projet
#3 etapes projet
android.pdf
android.pdf
SymBiOT-X portfolio
SymBiOT-X portfolio
"Introduction aux Developements iOS" in Three hours
"Introduction aux Developements iOS" in Three hours
2-historique d'android.pdf
2-historique d'android.pdf
ActionBar Android
ActionBar Android
[WEBINAR] Kaliterre : 10 raisons d'intégrer l'éco-conception logicielle
[WEBINAR] Kaliterre : 10 raisons d'intégrer l'éco-conception logicielle
Meetup #1 low-code, Pourquoi ? Pour qui ? Comment ? Rencontrons-nous !
Meetup #1 low-code, Pourquoi ? Pour qui ? Comment ? Rencontrons-nous !
Une application sans framework en 2019
Une application sans framework en 2019
Etude Stardust
Etude Stardust
Présentation stardust
Présentation stardust
Niji rapport de prévention 2021 - android 12
Niji rapport de prévention 2021 - android 12
Plasticité2014 part4vf
Plasticité2014 part4vf
Mais de Olivier Philippot
DevFest Toulouse - Comment être une développeuse (un développeur) ethique et ...
DevFest Toulouse - Comment être une développeuse (un développeur) ethique et ...
Olivier Philippot
IotCeption - Energy Measurement of Android Things on Raspberry PI 3 with Ardu...
IotCeption - Energy Measurement of Android Things on Raspberry PI 3 with Ardu...
Olivier Philippot
IotCeption - Energy Measurement of Android Things on Raspberry PI 3 with Ardu...
IotCeption - Energy Measurement of Android Things on Raspberry PI 3 with Ardu...
Olivier Philippot
Green Code Lab Challenge 2015 Subject Details
Green Code Lab Challenge 2015 Subject Details
Olivier Philippot
Green it Olivier Philippot usf_2010
Green it Olivier Philippot usf_2010
Olivier Philippot
Introduction Green IT
Introduction Green IT
Olivier Philippot
Mais de Olivier Philippot
(6)
DevFest Toulouse - Comment être une développeuse (un développeur) ethique et ...
DevFest Toulouse - Comment être une développeuse (un développeur) ethique et ...
IotCeption - Energy Measurement of Android Things on Raspberry PI 3 with Ardu...
IotCeption - Energy Measurement of Android Things on Raspberry PI 3 with Ardu...
IotCeption - Energy Measurement of Android Things on Raspberry PI 3 with Ardu...
IotCeption - Energy Measurement of Android Things on Raspberry PI 3 with Ardu...
Green Code Lab Challenge 2015 Subject Details
Green Code Lab Challenge 2015 Subject Details
Green it Olivier Philippot usf_2010
Green it Olivier Philippot usf_2010
Introduction Green IT
Introduction Green IT
Breizhcamp 2017 - Comment j’ai diminué la consommation d'énergie d'une application native Google Android (et pourquoi) ?
1.
Comment j’ai diminué la consommation d'énergie d'une application native Google Android (et pourquoi) ? Olivier Philippot - @simplygreenit
2.
Who I am? CTO Greenspector @simplygreenit
3.
4.
Analyse de l'interface Android native (System UI) pour un constructeur de smartphone
5.
6.
Systeme UI? Il s'agit de l'interface graphique d'Android intégrant les fonctionnalités de bases * * 4 milliards d'utilisateur
7.
Méthodologie Greenspector Se focaliser sur les "gros cailloux" : Mesure des fonctionnalités (les tests fonctionnels existent !) Approche progressive et top-down Optimisation du temps du développeur
8.
Explications : Reference : Smartphone en inactivité Métrique : vitesse de décharge (uAh/s) Un impact fort de la barre de statut X3 sur la consommation d'énergie du téléphone en inactivité Autant qu'une video (mais sur quelques secondes) Est-que cette fonctionnalité mérite ce coût ? Mesure de la consommation des fonctionnalités
9.
Et maintenant, pourquoi en est-on là ?
10.
On suit la méthodologie, et on profile *... Faits notables : 8 coeurs sollicités pendant toutes les actions ! Des "glitchs" hors des actions (et pendant) Une fermeture aussi couteuse que l'affichage * Usage de Systrace d'Android
11.
Trop d'événements Les événements systèmes (Wifi, Batterie...) génèrent des traitements graphiques inutiles (34 appels en quelques secondes) L'interface est traitée à 60 FPS (même performance que les jeux) et crée des appels de fonctions importants (> 1000)
12.
Un peu plus d'explication sur le phénomène
13.
Trop d'évènement + vues lourdes
14.
Quels impacts au final ?
15.
L'impact est uniquement sur l'autonomie batterie ? Oui mais l'impact va plus loin : Usage des 8 coeurs qui ne laisse pas la place aux autres applications > Obsolescence Logiciel adapté à des plateformes High Tech qui laisse de côté les plateformes plus anciennes > Exclusion Sollicitation de la batterie qui diminue sa durée de vie > Obscolescence Rejet de l'application > Gaspillage de Jour-Homme de développement
16.
Corrections
17.
2 jours de correction pour une amélioration notable Exemple de correction limitant l'impact des events public void setIsAirplaneMode(IconState
icon) { // Greenspector-UpdateReduce: We have to check if the airplane mode has changed if (mInfo.airplaneModeEnabled == icon.visible) return; mInfo.airplaneModeEnabled = icon.visible; refreshState(mInfo); } Pour des gains globaux non négligeables
18.
Amélioration globale de l'application Exemple : moins de pression mémoire (Moins de GC)
19.
Pourquoi en est-on à cette situation ?
20.
Recherche du framework ideal, et pas le temps de maitriser le nouveau framework Effet rebond. Par exemple, l'event programming est le nouveau polling programming Abstraction pour plus de flexibilité mais perte de contrôle du comportement ressource Silver bullet et effet rebond
21.
There is no doubt that the grail of efficiency leads to abuse. Programmers waste enormous amounts of time thinking about, or worrying about, the speed of noncritical parts of their programs [...] We should forget about small efficiencies, say about 97% of the time: premature optimization is the root of all evil. Yet we should not pass up our opportunities in that critical 3%. Donald Knuth - 1974 "premature optimization is the root of all evil" ?
22.
Mesurer, Mesurer et Mesurer
23.
Efficient ?
24.
Métrique d'efficience (par unité fonctionnelle)
25.
Revenons dans notre monde (1/2) * Flame Graph Netflix
26.
Revenons dans notre monde (2/2) * Profiling Android
27.
By beagleboard.org - http://beagleboard.org/hardware, CC BY- SA 3.0, https://commons.wikimedia.org/w/index.php? curid=5733966 L'énergie comme une métrique de pilotage Des architectures logicielles et matérielles complexes à maitriser en terme d'efficience Car hétérogénes : CPU, GPU, DSP, FPGA... Donc, difficile à mesurer avec des métriques classiques Tous les composants nécessitent de l'énergie. L'énergie est une métrique globale et permet de controler l'ensemble.
28.
Comment fait t'on maintenant ? Notion de budget
29.
Exemple de budget dans la performance
30.
Comment mettre un un budget en place ?
31.
Mise en place d'un budget énergétique de x2 (par rapport à la référence) En bleu : le développeur ne peut rien, à moins de travailler sur l'OS et le matériel En rouge : le hors budget A valider sur des devices réels et représentatifs. Mise en place de budget !
32.
Une implication de toutes les parties prenantes Actions possibles en cas de dépassement Identification d’un potentiel bug Optimisation du code Remise en question d’une librairie Simplification de l’UX ou du besoin Augmentation du budget et diminution du budget d’une autre fonction
33.
L'éco-conception logicielle apporte des gains réels. Les gains se répercutent sur tout le cycle de vie. C'est un domaine complémentaire à d'autres. La dette est grande et il est urgent d'agir à tous les niveaux !
Baixar agora