Batteries d'iPhone : les développeurs ont maintenant leur part du boulot à accomplir

Stéphane Moussie |

Cela ressemble à un appel du pied de la part d’Apple. Xcode 9.3, disponible en bêta depuis hier, contient une nouvelle série d’outils liée à la gestion de l’énergie. Les développeurs peuvent analyser les logs enregistrés quand leur application consomme tellement de ressource processeur qu’elle draine rapidement la batterie. Cela vaut autant pour la consommation au premier plan qu’à l’arrière-plan.

L’environnement de développement comprenait déjà des outils pour étudier l’utilisation CPU des applications, mais cette nouveauté a tout l’air de s’inscrire dans l’affaire des batteries d’iPhone.

Pour éviter des extinctions inopinées provoquées par des « pics » d'utilisation CPU, Apple avait décidé de brider les performances des iPhone aux batteries vieillissantes (iPhone 6 et modèles suivants). Face au scandale de la découverte de cette mesure qui n’avait pas été clairement annoncée, Apple a finalement fait marche arrière et iOS 11.3 permettra de désactiver le bridage.

Sauf qu’en désactivant le bridage, les utilisateurs retrouveront certes des performances maximales, mais ils s’exposeront à des arrêts imprévus, avant que la batterie de l’iPhone n'atteigne 0 %. D’où ces nouveaux outils dans Xcode pour encourager les développeurs à optimiser la consommation d’énergie de leurs apps…

Dans un autre domaine, Xcode 9.3 accélère significativement la compilation des projets en Swift. Le coup de boost est en fait déjà possible avec Xcode 9.2, mais il faut l’activer manuellement. Il a une contrepartie : la consommation en mémoire vive augmente pendant l’opération.

avatar R1x_Fr1x | 

Il faut s'appeler Apple pour pouvoir faire avaler ça

"Sauf qu’en désactivant le bridage, les utilisateurs retrouveront certes des performances maximales, mais ils s’exposeront à des arrêts imprévus, avant que la batterie de l’iPhone n'atteigne 0 %"

En pensant que c'est normal qu'un téléphone s'éteigne avant 0% car le CPU est trop sollicité (pauvre chou). 1000 balles le tel et on te dit c bridage ou extinction inopinée et Ça passe crème car c'est pas Samsung ou Xiaomi. Là c'est Apple! C'est cool! Ils savent mieux ce qui est meilleur pour nous et nous guident vers la lumière. Même la batterie dit au CPU " you are using yourself the wrong way" avec l'humilité et Le respect légendaire d'Apple.

Évidemment tout ceci ne serait pas possible sans tous ces organes de propagandes ici et là faisant non seulement avaler la pilule mais ridiculisant les différentes actions en justice genre y'a pas de pb circulez les sans dents

avatar hogs | 

A la lecture des divers commentaires à ce sujet, j'en arrive à ma conclusion personnelle suivante:
Pour les faits:
- Avec le temps la capacité à stocker de l'énergie et la quantité restituable dans un laps de temps très court s'altère avec le temps, cela est du ressort de la physique et de la chimie.
- Les batteries sont caractérisées par bien plus de caractéristiques que juste leur capacité de stockage et leur nombre de cycles.
- Apple a choisi de définir conjointement deux de ses nombreux paramètres pour permettre un diagnostique pragmatique en cas de problème: x% de capacité ET moins de x cycles de charges. Ce n'est en aucun cas un choix scientifique, c'est un choix statistique, économique et pragmatique.

Pour ma conclusion.
1. un iPhone sans aucune application tierce doit fournir la même expérience utilisateur tant que la batterie est considérée bonne pour le service, c'est à dire au moins jusqu'à la limites du nombre de cycles et capacité annoncées.
2. La réduction de fréquence du processeur est un élément technique interne ne devant pas affecter l'expérience utilisateur pour un iPhone sans applications tierces. Lorsque l'expérience utilisateur s'en trouve réduit, cela doit être par une batterie ayant perdu trop de capacité (stockage et restitution en pointe).
3. Pour les applications tierces, il est de la responsabilité des développeurs de tenir compte de la courbe de baisse de puissance pour leur application et de la responsabilité d'Apple de leur en donner les moyens (communication règle entrainant la baisse de performance). De plus, si les performances dudit logiciel se trouvent affectées par la baisse de puissance, le développeur doit le mentionner ainsi que, lorsque pertinent, en communiquer les conséquence (qualité graphique diminuée, etc...) dans l'app store.
4. Une application sollicitant le téléphone au-delà de la normale devrait être soit annoncée soit interdite. (Essayez de rouler en première avec votre voiture sous garantie à la vitesse max avant la zone rouge jusqu'à la surchauffe et vous verrez si la garantie fonctionne...). Une autre illustrations de ce concept en est certains benchmark poussant le matériel "à fond" pour lequels une boîte de dialogue vous averti que vos risquez la casse car le matériel est stressé.
5. Pour en finir, Apple est coupable de laxisme et de complaisance avec les développeurs, leurs logiciels inadaptés (Grip, Pokemon Go, etc...) servant de faire valoir technologique et de vitrine publicitaire "gratuite" pour Apple alors que ces logiciels n'ont pas leur place (pour autant qu'ils soient programmés dans les règles de l'art...) sur un téléphone de 2018.
6. Pour le comportement d'Apple vis à vis des clients, chacun a son opinion, la seule qui trouve l'unanimité est que l'approche est essentiellement mercantile.

avatar kinon | 

Commentaire frappé au coin du bon sens

avatar Carbonized | 

Il n'y a pas que les applications tierces qui peuvent être gourmandes.
Pour beaucoup d’utilisateurs, le bridage s'est manifesté par l'impossibilité de filmer en 4K.

avatar anonx | 

Les iPhone s'éteignent déjà bien avant l'heure... Arrêtez votre cinéma.. des années que ça dure ?

Bridage non mais ?

avatar MaksOuw | 

"mais ils s’exposeront à des arrêts imprévus, avant que la batterie de l’iPhone n'atteigne 0 %"

==> Pas comme si c'était déjà le cas, quand ta batterie est déglinguée elle te sort pas vraiment le bon pourcentage, donc un peu plus un peu moins...

avatar françois bayrou | 

pour en revenir au sujet de l'article, le green coding devrait être systématique, l'optimisation, intelligente. Quand c'est bien fait, ca donne un code plus performant et donc plus rapide : le CPU vous remercie, la batterie vous remercie, l'utilisateur vous remercie, la planète vous remercie.

avatar denisdp | 

Dans beaucoup de commentaires ici (comme ailleurs), on confond deux choses totalement différentes:
La limite des 80% de capacité de la batterie n'a rien à voir avec les extinctions inopinées lors des pics d'activité. Dans ce cas, c'est l'impédance de la batterie qui est en cause (la largeur du tuyau permettant de faire passer le courant, pour faire simple).
Et pour rappel également, l'âge d'une batterie ne se calcule pas en mois/années mais en nombre de cycle. Votre batterie pourra être d'un âge avancé au bout de 6 mois si vous lui infligez 3/4 cycles par jour. Ce n'est pas une question de temps, mais d'utilisation.

avatar webHAL1 | 

@ denisdp :
« Dans beaucoup de commentaires ici (comme ailleurs), on confond deux choses totalement différentes: La limite des 80% de capacité de la batterie n'a rien à voir avec les extinctions inopinées lors des pics d'activité. Dans ce cas, c'est l'impédance de la batterie qui est en cause (la largeur du tuyau permettant de faire passer le courant, pour faire simple). »

Mais alors comment se fait-il qu'Apple bride la batterie des iPhones lorsque la batterie atteint un certain seuil ? L'impédance diminue-t-elle avec le nombre de cycles ?

« Et pour rappel également, l'âge d'une batterie ne se calcule pas en mois/années mais en nombre de cycle. Votre batterie pourra être d'un âge avancé au bout de 6 mois si vous lui infligez 3/4 cycles par jour. Ce n'est pas une question de temps, mais d'utilisation. »

Je pense que tout le monde (ou presque) en est conscient, mais l'âge va être lié au nombre de cycles. Apple part du principe qu'on peut tenir une journée avec une charge en utilisation "normale". Donc on recharge son iPhone environ 350 fois par année.

Cordialement,

HAL1

avatar skarel | 

@ denisdp

Je n'ai pas l'impression que les intervenants ici confondent ces deux notions.

Mais tu commets en revanche toi-même cette confusion, puisque tu conclus (comme le fait Apple) en définissant l'âge d'une batterie par son seul nombre de cycles (duquel on peut par ailleurs déduire une temporalité si l'on parle en moyenne, avec mettons un cycle par jour ou tous les deux jours, puisque cela correspond à environ 8 heures en fonctionnement).

Or, ce que nous apprend cette affaire, c'est que l'âge d'une batterie peut avoir une autre définition, basée elle sur son impédance, et qu'Apple ne prend pas en considération dans son programme de remplacement de batterie (sauf exceptionnellement cette année 2018 pour les batteries d'iPhone seulement, alors que d'autres appareils sont également touché, mon MacBook notamment a été touché dès les 350 cycles (les batteries de MacBook sont sensées tenir les 1000 cycles, chiffre ramené à 500 pour les batteries d'iDevices), ce qui permet je te le confirme d'attester que ce soucis n'est pas lié à la définition habituelle de l'usure (telle que pratiquée par Apple), basée quant à elle sur les cycles).

On a donc une reconnaissance suffisamment officielle de ce soucis d'impédance pour justifier un bridage de nos appareils, mais pas suffisamment officielle pour justifier un remplacement de batterie dans le cadre de la garantie légale…

avatar SyMich | 

Attention! Une batterie de MacBookPro est censée tenir beaucoup plus de 1000 cycles. Ce que garantit Apple c'est qu'à 1000 cycles elle aura encore au moins 80% de sa capacité d'origine, ce qui ne correspond pas à une batterie morte, loin de là.
D'ailleurs ton MacBookPro ne t'indiquera que la batterie nécessite d'être remplacée que lorsqu'elle descendra en dessous de 50% de sa capacité d'origine (ce qui peut apparaître à 2000 cycles voire plus)

Idem sur les iPhones. A 500 cycles la batterie est garantie conserver 80% de sa capacité. Mais ce n'est qu'à partir de 50% de sa capacité initiale que dans Réglages/batterie s'affichera, sous iOS11, que la batterie doit être changée.

avatar skarel | 

@SyMich

Mon MacBook a commencé à avoir des « extinctions inopinées » sur batterie autour de 300-350 cycles, à un moment où macOS m’affichait un état de santé « Normal » (autour de 95% de sa capacité d’origine). A ce moment, pas possible de faire changer la batterie, puisqu'elle est considérée comme sans problème officiellement reconnu.

Après être passé sous les 80% (autour de 500-600 cycles), et après la garantie de 2 ans de mon MacBook, il a commencé à m’indiquer « Vérifiez la batterie ».

L’autre jour (au moment du passage à 700 cycles), il m’a fait un truc étrange, à savoir couper net lorsque je retirais le câble MagSafe. J’ai alors remarqué qu’il refusait également de s’éteindre (il passait en veille prolongée à la place) sur secteur, et coupait systématiquement net dès que je retirais le MagSafe, l’horloge retournant à un horaire par défaut, le démarrage nécessitant de le rebrancher au courant. Il m’indiquait alors de faire remplacer ma batterie.

Bref, ma batterie est vraiment en train de rendre l’âme (sa santé se balade entre 35% et 75%, là il m’indique 75% depuis plusieurs jours, mais il suffit peut-être que je lance un encodage vidéo sur batterie et il est possible qu’il passe autour de 30% après avoir coupé net comme d’hab), et cette batterie n’a pourtant pas encore atteint ses 1000 cycles que tu indiques comme « garantis » par Apple.

J’ai pourtant fait attention depuis le début à son utilisation : j’ai essayé de consommer le moins de cycles possibles (ce qui explique que j’en soit à à peine plus de 700 pour une machine qui a pourtant plus de 5 ans et qui a été utilisée intensivement) tout en prenant soin de lui faire quand même passer des cycles régulièrement, le tout en essayant de ne pas rester trop longtemps dans les extrêmes).

Rendez-vous pris avec l’Apple Store l’autre jour, je dois payer une nouvelle batterie, ils ont reçu la pièce, je la fais donc changer en début de semaine prochaine. Ça ne me dérange pas de payer une batterie au bout de plusieurs années si c’est vraiment nécessaire, mais là je me demande si je n’ai pas une batterie défectueuse depuis le tout premier jour, et qu’on aurait pu s’en rendre compte dès le début avec cette histoire de coupure d’alimentation … à un moment où macOS m’affichait pourtant une santé « Normale » … car basée sur le nombre de cycle seulement.

C'est pourquoi je pense que cette histoire cache un vrai vice de conception, et qu'il est nécessaire de ne pas le minimiser ou le balayer d'un revers de la main, car selon mon expérience (qui n'est peut-être pas généralisable), il est possible qu'il en soit de même avec tous les produits qu'Apple a sorti ces dernières années !

avatar Ichigo-Roku | 

Les développeurs ont toujours eu leur part du boulot à ce niveau-là...

avatar dtb06 | 

C'est toujours de la faute de ces fainéants de développeurs au final.

avatar BLM | 

«leur application consomme tellement de ressource processeur qu’elle draine rapidement la batterie»
Votre anglicisme "drainer" est une horreur !

En FRANÇAIS: "drainer" signifie: débarrasser un TERRAIN d'un excès d'EAU, assécher au sens strict; on draine un terrain, particulièrement un marais en le creusant de multiple fossés. On peut aussi drainer une plaie ou un organe, toujours avec le même sens.
Le contraire de drainer en français est: arroser, voire inonder.
Au sens FIGURÉ, drainer peut être utilisé pour signifier "épuiser": il draine toute mon énergie (il pompe toute mon énergie).

En ANGLAIS: "to drain" signifie provoquer la disparition de quelque chose (qui n'est plus nécessairement de l'eau, ni même un liquide); ce verbe étant généralement accompagné/renforcé par un mot tel que away / out / off.
• Drain out the tub (vide la baignoire) ;
• All the colour had drained from his face (il avait blêmi)
• Drain the juice off before serving the beans (enlève le jus avant de servir les haricots)
• They were careful not to drain all of their resources (il faisaient attention à ne pas épuiser leurs vivres)
etc

ICI, vous employer le mot/l'expression "drainer [une batterie]" avec le sens de "épuiser" ce qui est le sens anglais (épuiser la réserve d'électricité). C'est un barbarisme.
Pitié ! Rédigez en anglais proprement ou en français, ne polluez pas une langue avec les acceptions de l'autre.

avatar webHAL1 | 

@BLM
« ICI, vous employer le mot/l'expression "drainer [une batterie]" avec le sens de "épuiser" ce qui est le sens anglais (épuiser la réserve d'électricité). »

Euh... tu dis toi-même au-dessus, à propos de la définition française :
"Au sens FIGURÉ, drainer peut être utilisé pour signifier "épuiser": il draine toute mon énergie (il pompe toute mon énergie)."

En quoi est-ce un problème que MacG utilise "drainer" au sens figuré ?

Cordialement,

HAL1

avatar melaure | 

Alors que refaire des iPhone un peu plus épais avec deux fois plus de batterie, non, ce n'est pas la solution ?

Donc on délègue le problème aux autres ???

Quelle mascarade !

Pages

CONNEXION UTILISATEUR