Chrome va bientôt indiquer la mémoire économisée par un onglet en veille
Google cherche à optimiser la consommation de RAM de Chrome. Le navigateur devrait bientôt indiquer à l'utilisateur la quantité de mémoire économisée lorsqu'un onglet est inactif, une fonction déjà disponible sur Edge depuis quelque temps. La nouveauté (pour le moment réservée aux développeurs) a été repérée par un utilisateur de Reddit.
Comme on peut le voir sur cette capture d'écran, un popup indiquera clairement la quantité de mémoire économisée pendant la période où l'onglet était inactif. On pourra obtenir l'information en cliquant sur une nouvelle icône dans la barre d'URL. Une liste blanche sera proposée via les réglages afin d'éviter de mettre en veille des onglets importants.
Cette nouveauté sera pratique pour rapidement détecter les pages lourdes, mais aussi constater l'efficacité de la nouvelle fonction « Memory Saver » de Google. Ce mode d'optimisation des performances est apparu il y a peu sur les versions de Chrome pour développeur. Il se cache dans un nouvel onglet « Performances » des réglages et permet de récupérer la mémoire des onglets inactifs.
Google a aussi dans ses cartons un nouveau mode d'économie d'énergie. Celui-ci va offrir de limiter l'activité en arrière-plan et les effets visuels lorsque la batterie de l'ordinateur passe sous la barre des 20 %.
La consommation faramineuse des onglets Chrome est quasiment LA raison qui m’incitent à prendre 16GO au lieu de 8 sur mon prochain mac ! Très bonne nouvelle si on peut régler ça !
@Immagini
« Très bonne nouvelle si on peut régler ça ! » c’est même très facile à régler ! N’utilise pas chrome 🤣😉
@Jeckill13
"« Très bonne nouvelle si on peut régler ça ! » c’est même très facile à régler ! N’utilise pas chrome 🤣😉"
Et le remplacer par quoi ? Safari 🤣
@fte
Firefox
@fte
«Et le remplacer par quoi ? Safari 🤣»
Oui parfaitement ! : https://www.01net.com/actualites/quel-navigateur-respecte-le-plus-et-le-moins-votre-vie-privee.html
😈
@Immagini
Oui pareil, c’est quand même triste, toute cette décennie passé à en finir avec flash player, tout ça pour avoir encore pire à l’arrivée.
Après, je dis pas que flash était encore forcément pertinent non plus.
@Immagini
Sinon tu peux changer de navigateur. Edge est beaucoup plus léger et fonctionne exactement de la même manière. 😁
-doublon
@Immagini
Sinon il y a la très bonne extension The Great Tab Suspender
@Immagini
Sinon il y a la très bonne extension The Great Tab Suspender
The great suspender est vérolé. Sauf à aller le chercher sur github
@v1nce29
Whaaaat ?? Ah bon 😶
Pas sûr à 100% que ce soit la même application, mais il vaut mieux être prudent
https://www.google.com/amp/s/www.phonandroid.com/chrome-supprime-the-great-suspender-de-son-store-voici-comment-retrouver-vos-onglets.html/amp
@Immagini
16 Go pour un navigateur ! Si ça c’est pas ridicule
@Immagini
Le choix d’un autre navigateur aurait été bcp plus économique….
@Immagini
Pourquoi tu préfères chrome a safari?
Ma compagne utilisant en moyenne 40 onglets ouverts dans chrome sur son MacBook Air M1 8Gb appréciera 🤪
Un véritable veau cette machine quand elle est saturée 😞
@ frankynov
> Ma compagne utilisant en moyenne 40 onglets ouverts
J'ai tendance à faire ça aussi.
En plus j'ai au moins une vingtaine de fenêtres ouvertes en même temps.
Ça fait du monde.
Et je n'ai aucun problème - avec Safari.
Enfin non : Parfois j'ai un problème : Je ne retrouve plus la bonne fenêtre et le bon onglet ! Et c'est ce qui va me faire changer de manière de faire, pas des problèmes techniques.
@frankynov
"Un véritable veau cette machine quand elle est saturée 😞"
Et oui, tant de puissance et si peu de mémoire pour la déployer. Risible.
@marc_os
Avant ce genre de problème pouvait être facilement résolu par une matrice de bureau (appelés aussi espaces de travail) (genre 4 lignes, 3 colonnes ou plus au choix)
Depuis l’après Snow Leopard c’est une ligne de bureau (mission bidule il me semble) ou il est bien moins facile de s’y retrouver a partir de 5-6 bureaux ouverts avec une disposition rectiligne
On pouvait donc auparavant mettre les onglets ou applications que l’on souhaite automatiquement toujours au même endroit et avoir une représentation mentale permettant d’aller chercher plus facilement l’onglet ou l’application qui nous intéresse avec les raccourcis claviers (on se déplace dans la matrice d’espaces de travail) : plus difficile quand c’est une ligne de plusieurs bureaux
C’est la définition du progrès façon Apple : imposer des manières de faire plutôt que laisser le choix (qui pouvait le plus pouvait aussi le moins ce qui n’est plus possible maintenant : belle avancée… : une des raisons pour lesquelles j’ai quitté le Mac !!!
@ CorbeilleNews
> On pouvait donc auparavant mettre les onglets ou applications que l’on souhaite automatiquement toujours au même endroit et avoir une représentation mentale permettant d’aller chercher plus facilement l’onglet ou l’application qui nous intéresse
> une des raisons pour lesquelles j’ai quitté le Mac
Quel OS d'aujourd'hui vous offre donc cette représentation en « matrice de bureau » ?
@marc_os
Linux
J’avais tenté d’utiliser un utilitaire mac a l’époque mais dès que je passais un soft en plein écran mission control reprenait la main et l’éditeur ne pouvait rien faire contre !
C’est pour moi un preuve de plus (parmi d’autres) de la fermeture de l’écosystème d’Apple !
@ CorbeilleNews
> Linux
Toutes les distributions Linux proposent cela ?
Ceci dit, je doute que les administratifs de ma boîte voudraient troquer leur Mac contre du Linux.
@marc_os
Ubuntu et Debian le propose en natif selon les versions : sous Unity c’est sûr mais sur Debian il y a longtemps que je n’ai plus essayé
Il me semble que ArchLinux et Manjaro le propose aussi mais je ne sais plus quelle version non plus a force de les tester 😋
Mais cette nouvelle fonctionnalité prendra 3go de ram pour tourner
un popup indiquera clairement la quantité de mémoire économisée pendant la période où l'onglet était inactif
Quel intérêt ?
C'est pour dire à l'utilisateur, regardez comme on était nul et comme on est meilleur maintenant ? 😳
@marc_os
"C'est pour dire à l'utilisateur, regardez comme on était nul et comme on est meilleur maintenant ? 😳"
🤷♂️
😂🤣😂
C’est quand même un truc de cons l’informatique moderne. On écrit n’importe quoi n’importe comment à la va le plus vite possible et après on est emmerdé on arrive plus à intégrer quoi que ce soit sans mettre le bronx, le programme devient un fatras illisible et puis on dépense des mois de travail à essayer d’optimiser en perdant des spécifs et en en cassant d’autres. C’est toujours du bricolage, toutes ces boites aussi grosses soient-elles ne se donnent pas les moyens de travailler proprement dès le démarrage d’un projet.
@Phiphi
"puis on dépense des mois de travail à essayer d’optimiser"
Seule l’échelle a changé, et quelques contraintes.
Mais ne t’y trompe pas : les seules optimisations systématiques en 50 ans d’informatique personnelle n’ont qu’une seule cause : l’obligation d’optimisation pour que ça seulement tourne. Point.
Ce n’est ni pire ni mieux aujourd’hui.
Et non, Apple n’optimise ni plus ni moins que n’importe quel autre développeur majeur. Aka, le minimum obligatoire.
Cette optimisation de Chrome est marketing. C’est la raison pour laquelle ils communiquent dessus et affichent des messages.
Edge implémente déjà de telles optimisations. Pour se creuser une place comme alternative à Chrome. Marketing aussi.
@fte
Non au tout début on optimisait quand même (et on était bien obligé en fait) mais oui c’est bien le problème de l’informatique. Une voiture mal foutue qui marche avec des bouts de ficelle ÇA CE VOIT par n’importe qui avant de l’acheter alors qu’un programme mal foutu plein de bidouillages tordus personne ne s’en rends compte avant qu’il ne soit trop tard. Du coup tout le monde fait de la merde et celui qui essaie de travailler proprement se fait allumer parce que c’est plus long 🤷♂️
@Phiphi
"on était bien obligé"
Oui. C’est très exactement ce que je disais : optimisations quand obligé. Pas autrement. Pourquoi s’emmerder si ce n’est pas obligé ? Pourquoi dépenser du pognon sans y être forcé ? Parce que pas.
@Phiphi
"on était bien obligé"
Oui. C’est très exactement ce que je disais : optimisations quand obligé. Pas autrement. Pourquoi s’emmerder si ce n’est pas obligé ? Pourquoi dépenser du pognon sans y être forcé ? Parce que pas.
@Phiphi
Et il n’y a pas que dans l’info que c’est comme ca …
IGeneration a merdé. Doublon.
@fte
Ah mais oui Apple apprends au jeune à programmer par approximation successive et déboggage itératif au lieu de travailler avec des tableaux de décisions, des organigrammes et surtout des jeux d’essais exhaustifs. J’ai halluciné quand j’ai regardé Swift playground au tout début 😳
On apprends à programmer comme les shadoks essaye de faire voler la fusée. Et bien non il y a 45 ans je n’ai pas appris la programmation des automates puis celle des « calculateurs » comme ça. Avec un bon cahier des charges et un jeu d’essai soigné, quand ça marchait, ça marchait vraiment. Et les automates s’usaient mais j’ai fais étant jeune des programmes qui n’ont pas eu besoin d’une seule modification de maintenance pendant des années ensuite.
@ Phiphi
> J’ai halluciné quand j’ai regardé Swift playground au tout début 😳
Ah Swift !
Un dev spécialisé dans les compilateurs (LLVM) n'avait plus rien à faire, alors pour justifier son poste il a inventé un nouveau langage. Et il a appelé ça Swift. Argument majeur, "plus besoin de pointeurs" ! Le mec il aurait dû passer à Visual Basic, Microsoft avait déjà viré les pointeurs ! Swift dans son ensemble c'est un langage de Shadock : "Pourquoi faire simple quand on peut faire compliqué ?" Je l'ai déjà évoqué, comme exemple il suffit d'écrire du code Swift pour extraire d'une chaîne de caractères la sous-chaîne qui va de l'indexe 5 à l'indexe 10. Rien que ça ça vaut son pesant d'or. Ensuite, si on veut utiliser la "sous-chaîne", et bien en fait un a une "substring", et il faut la transformer en String pour la majorité des API !
Du grand n'importenawak. Ensuite la "programmation orientée protocole", laissez moi rire ! Visiblement les adeptes de Swift n'ont pas uniquement des problèmes avec les pointeurs, mais aussi avec la programmation OOP. (Je le vois très bien à mon taf).
Dernier exemple : la communication XPC. Et bien x années après la création du langage, il faut toujours utiliser les classes NSXPC, toujours pas de support natif dans le langage. Ou utiliser un framework qui fait le job (chez nous on en utilise un basé sur les api en C ! Je peux parler aussi de l'intégration avec les objets d'interface, si tu utilises des NSTextField, que tu veux récupérer la sélection, tu chopes du NSRange, dont tu ne peux rien faire en Swift, à par le convertir en Range, alors là oui.
Et je ne parle pas des interactions avec les API bas niveau en C de macOS, où tu dois quand même te tapper des pointeurs. Mais comme les pointeurs c'est pas "natif", bonjour le bazar.
Etc, etc.
Et question performances moisies, c'est pas grave, les ordis de nos jours sont assez puissants.
Et tout ceci ne rend pas le code Swift plus fiable ou stable que de l'Objective C.
@Phiphi
Nous devons être de la même génération, PB 100, Director 4001
Il fallait bien concevoir et faire avec ce que l’on avait.
Le truc est parti en vrille quand on a augmenté la puissance des automates fin des années 80 avec Siemens par exemple.
Les programmes sont devenus lourds à tel point que le temps de scan excédait certains temps de capteurs “pas vu pas pris en compte”.
Depuis ce n’est que du bricolage pour remédier à des erreurs dues a l’absence d’une réflexion sérieuse.
Je n’ai vu que certaines choses cohérentes quand on est sur des fonctions critiques impliquant de gros risques mais la on utilise plutôt des choses genre QNX.
@fte
Pourtant safari mange moins de RAM en utilisation 😉
@Krysten2001
"Pourtant safari mange moins de RAM en utilisation 😉"
En étant plus lent et moins compatible et beaucoup plus buggé. Yep. Le logiciel, c’est très souvent un compromis. Toujours en réalité.
@fte
Lent ? Moins compatible ? Ça dépend de l’utilisation de chacun mais aucune gêne pour moi 😉
@Krysten2001
"Lent ? Moins compatible ? Ça dépend de l’utilisation esde chacun mais aucune gêne pour moi 😉"
Ah oui bien sûr, tant qu’on ne surf pas et qu’on utilise pas les outils dev, Safari est très bien.
Moi je veux que chrome affiche le pourcentage d’emprise sur le web par Google grâce à ce navigateur, car c’est quand même sa fonction principale.
Donc tu ouvre un onglet depuis une recherche google a regarder plus tard. Ce plus tard, fermer le popup chrome+rejeter la notification du site puis l'annonce RGPD...
@marc_os : il y a toujours des pointeurs en Swift : les classes sont pointeurs sur une structure. Ce n’est que lors de l’utilisation de celles-ci qu’on peut avoir les problèmes de fuites.
Sinon, Swift est un langage bizarre au début, mais qui s’apprécie à force de l’utiliser. Avec quelques petites nouveautés sympa :
- créer ses propres opérateurs
- les codables qui simplifient la gestion des données json
- les protocoles (qu’on retrouve aussi sur objective-c) mais avec la possibilité d’ajouter des implémentations par défauts qui peuvent rajoutent des fonctionnalités à n’importe quel type via le declaration d’une extension.
…
De toute façon, c’est comme tous les langages : on peut faire du code hyper optimisé mais inmaintenable ou faire du code propre qui peut évoluer et éventuellement être optimisé dans un second temps une fois validé.
@PtitXav
Ça donne envie. Merci ☺️
@ PtitXav
> créer ses propres opérateurs
Comme en C++.
Perso, ça ne m'a jamais manqué en Obj-C
> les codables qui simplifient la gestion des données json
https://jihyunsblog.wordpress.com/2018/04/05/how-to-make-codable-class-to-use-in-objective-c/
> les protocoles (qu’on retrouve aussi sur objective-c) mais avec la possibilité d’ajouter des implémentations par défauts
« on [les] retrouve aussi sur objective-c »
Quant à l'implémentation « par défaut » je ne vois pas ce qu'il y a de spécial. En Obj-C il te suffit de créer une classe "par défaut" répondant au protocole et qui offre l'implémentation par défaut.
> il y a toujours des pointeurs en Swift : les classes sont pointeurs sur une structure
Mouais. Sauf qu'on ne passe pas de "pointeurs" en paramètres aux fonctions.
Car utiliser * et & c'est trop dur il parait.
Du coup, bonjour la cuisine de Shadock quand il faut interagir avec des api C bas niveau de macOS avec des paramètres qui sont des pointeurs et non pas des "références" comme ce qu'on passe une variable d'instance d'objet à une fonction en Swift.
En plus, si tu définis une struct, celle-ci sera dupliquée par l'appelant s'il y modifie une propriété. Par contre, si tu fais évoluer ton code, que tu décides de déclarer ta struct désormais comme une classe qui hérite d'une autre, moyen classique pour factoriser du code en OOP, alors le comportement change au niveau de l'utilisateur : Si tu modifies des propriétés de l'instance, celle-ci n'est pas dupliquée (OOP). Or si tu ne veux pas que ça arrive... mais comme on ne peut pas avoir de struct étant une "sous structure", ça fait une possibilité de factorisation du code en moins. Au final, ce que je vois, c'est qu'on reviens vers du procédural, avec du code emballé dans des
objetsstructures, comme je le voyais à une époque en Visual-Basic.Autre chose : Les variables optionnelles.
Trop cool. A première vue.
Au final, tu n'arrêtes pas d'ajouter du code pour vérifier si (genre guard let x = ).
Car vérifier si x == nil, ou tester un code d'erreur, c'est has been.
Et tant pis si les API bas niveau de macOS renvoient un code d'erreur.
Quant aux API "haut niveau", bonjour l'interface avec les objects d'interface comme NSTextField, tu n'arrêtes pas de jongler entre des objets hérités de Objective-C et Swift. Un coup coup avec NSRange, un coup avec des Range Swift, "objets" incompatibles qu'il faut convertir de l'un à l'autre selon les besoins (selon les API à qui on veut les passer).
Consommer de la mémoire pour montrer qu en économise.