[{"data":1,"prerenderedAt":17},["ShallowReactive",2],{"$fcACCeGHsWOdkLHoMIEj00TFwxA4sYZ5F1XT7Lj-BRqU":3},{"id":4,"date":5,"summary":6,"thumbImage":7,"author":8,"commentsCount":9,"title":10,"articleURL":11,"content":12,"tags":13,"articleExtras":14},186,"18/10/2026 15:23:49+02:00","\u003Cp>Vous aussi vous revenez toujours vers le même navigateur? Et c'est \u003Cb>Brave\u003C/b>? Et vous êtes sous Linux? Alors j'ai une bonne nouvelle pour vous!\u003C/p>","/assets/shorts/shorts_web1.png","DkVZ",0,"Comment rendre Brave plus... Brave (Brave Origin)",null,"\u003Cp>Le \u003Ci>Browser\u003C/i>... \u003Cb>Navigateur\u003C/b>, parfois appelé \"INTERNET\" par nos ainés est probablement le programme le plus important de ton ordinateur en plus d'être celui qui consomme le plus de mémoire et ce, même si t'as que trois onglets d'ouverts.\u003C/p>\n\n\u003Cdiv class=\"card-panel z-depth-3 article-image center-image\" style=\"max-width: 1117px\">\n\u003Cimg-lightbox>\n\u003Ca href=\"/stuff/bookmarklets/netscape.png\" target=\"_blank\">\u003Cimg src=\"/stuff/bookmarklets/netscape.png\" alt=\"Une capture d'écran du vieux navigateur Netscape\" class=\"responsive-img\">\u003C/a>\n\u003C/img-lightbox>\n\u003Cdiv class=\"image-legend\">Ancien mais très à propos\u003C/div>\n\u003C/div>\n\n\u003Cp>Je sais pas vous mais moi je finis toujours par revenir à Brave.\u003C/p>\n\n\u003Cp>Firefox ou LibreWolf sont OK... En restant les options les moins sécurisées.\u003C/p>\n\n\u003Cp>Quoique, apparemment \u003Ca href=\"https://www.securityweek.com/hackers-earn-1-3-million-at-pwn2own-berlin-2026/\" target=\"_blank\" rel=\"noopener noreferrer\">on a pas pu hack Firefox cette année\u003C/a> à la compétition où ils se font chaque fois \u003Ci>pwn\u003C/i>.\u003C/p>\n\n\u003Cp>Est-ce que Firefox a été sauvé par Rust? Peut-être. Plus que moi en tous cas (?).\u003C/p>\n\n\u003Cp>Mais bon y a d'autres problèmes avec Firefox, notamment des étrangetés dans la lecture multimedia.\u003C/p>\n\n\u003Cp>Vivaldi? Non j'y arrive pas. Chromium? Pourquoi pas mais toutes les histoires de Google-contre-les-bloqueurs-de-pub m'ont un peu refroidi.\u003C/p>\n\n\u003Cp>Edge? LOL\u003C/p>\n\n\u003Cp>Blague à part il y a Edge pour Linux. Mais ça tourne comme un sac de slip sales rempli de ciment lancé sur une plage de galets.\u003C/p>\n\n\u003Cp>Je reviens toujours à Brave. Je pense que le créateur de JavaScript est toujours aux commandes et je comprends pas trop comment ils se font de l'argent.\u003C/p>\n\n\u003Cp>Soit disant ils peuvent te montrent des pubs sur tes nouveaux onglets et toi tu peux gagner de la crypto-monnaie qui vaut quedalle (surtout en 2026).\u003C/p>\n\n\u003Cp>La classe. L'option doit être activée au préalable, ils te forcent pas à l'utiliser.\u003C/p>\n\n\u003Cp>Ceci dit, Brave te rappelle qu'il \"croit au Web3\" (lol qui se souvient du Web3?) en proposant régulièrement ses récompenses crypto, notamment avec une icône dans la barre de navigation:\u003C/p>\n\n\u003Cp>\n\u003Cimg-lightbox>\u003Ca href=\"/stuff/braveo/brave_rewards.png\" target=\"_blank\">\u003Cimg src=\"/stuff/braveo/brave_rewards.png\" alt=\"On déploie le popup sur les &quot;brave rewards&quot; qui prétent qu'on va être payé pour regarder des pubs\" class=\"responsive-img center-image\">\u003C/a>\u003C/img-lightbox>\n\u003C/p>\n\n\u003Cp>En 2026 on a quelque chose de plus dans l'ère du temps que la crypto: l'intelligence artificielle \u003Ca href=\"/articles/ia_on_va_vraiment_tous_crever_dans_10ans\" target=\"_blank\" rel=\"noopener noreferrer\">et c'est super intelligent de ouf\u003C/a>.\u003C/p>\n\n\u003Cp>J'ai des outils IA dans des onglets et sur mon ordi mais ça m'intéresse pas d'avoir une IA chelou implantée dans le binaire du navigateur.\u003C/p>\n\n\u003Cp>J'ai entendu des rumeurs de Google et Microsoft qui vont peut-être se mettre à embarquer 6GB de modèle IA dans leurs navigateurs et ça me rassure pas trop.\u003C/p>\n\n\u003Cp>Pour ceux qui trouvaient qu'un navigateur ça consommait beaucoup de mémoire, ben vous allez pas kiffer le futur. D'autant plus qu'il n'y a plus de mémoire sur le marché.\u003C/p>\n\n\u003Cp>En même temps personne va kiffer le futur proche. Ptet début 2029 ça ira mieux pour diverses raisons. Par ex. je pense pas qu'on pourrait avoir un pire président américain, ça commence à devenir vraiment difficile à concevoir.\u003C/p>\n\n\u003Cp>Mais revenons à Brave. Un jour ils ont décidé de sortir \u003Ca href=\"https://brave.com/origin/\" target=\"_blank\" rel=\"noopener noreferrer\">Brave Origin\u003C/a>, une version payante de Brave sans les bidules crypto, IA, et en fait sans tout ce qui est superposé à Chrome par Brave à l'exception du bloqueur de pub intégré (ce qui est plutôt cool parce qu'il s'agit d'un de mes éléments favoris de Brave).\u003C/p>\n\n\u003Cp>Et puis, ils veulent que tu paye. Pour un navigateur qui a moins de trucs que celui qui est gratuit. Ouais.\u003C/p>\n\n\u003Cp>Je sais pas.\u003C/p>\n\n\u003Cp>Quoi qu'il en soit, les utilisateurs de Linux peuvent gratuitement transformer leur Brave en \u003Cb>Brave&nbsp;Origin\u003C/b> dans les options.\u003C/p>\n\n\u003Cp>Pourquoi?\u003C/p>\n\n\u003Cp>Je sais pas. Non, vraiment, je comprends rien.\u003C/p>\n\n\u003Cp>C'est pas grave, j'aime bien les choses minimalistes en tech, je vais l'activer dans les options:\u003C/p>\n\n\u003Cp>\n\u003Cimg-lightbox>\u003Ca href=\"/stuff/braveo/brave_settings_origin.png\" target=\"_blank\">\u003Cimg src=\"/stuff/braveo/brave_settings_origin.png\" alt=\"Une option Brave Origin apparaît dans le menu\" class=\"responsive-img center-image\">\u003C/a>\u003C/img-lightbox>\n\u003C/p>\n\n\u003Cp>Vous tombez ensuite sur une ribambelle de boutons à bascule vous laissant libres de désactiver tout un tas de trucs et machines dont le mode TOR en navigation privée.\u003C/p>\n\n\u003Cp>Même le \"mode lecture\" peut-être désactivé. Pourquoi? Y a des gens qui aiment pas la lecture je suppose.\u003C/p>\n\n\u003Cp>Toutes les petits icônes du fond de la barre d'adresse ont bel et bien disparu:\u003C/p>\n\n\u003Cp>\n\u003Cimg-lightbox>\u003Ca href=\"/stuff/braveo/brave_chauves_be.png\" target=\"_blank\">\u003Cimg src=\"/stuff/braveo/brave_chauves_be.png\" alt=\"Le site chauves.be avec la barre d'adresse de Brave qui contient juste l'icone du bloqueur de pub\" class=\"responsive-img center-image\">\u003C/a>\u003C/img-lightbox>\n\u003C/p>\n\n\u003Cp>Peut-être qu'on économise un peu de mémoire avec ce plan?\u003C/p>\n\n\u003Cp>Je fais peter la commande \u003Cb>\u003Ca href=\"https://fr.wikipedia.org/wiki/Ps_(Unix)\" target=\"_blank\" rel=\"noopener noreferrer\">ps\u003C/a>\u003C/b> pour voir combien de mémoire prend Brave sauf que... Il y a une vingtaine de processus Brave. Je sais pas pourquoi.\u003C/p>\n\n\u003Cp>J'ai pas l'intention de faire un \u003Ci>grep\u003C/i> d'\u003Ci>awk\u003C/i> avec \u003Ci>cut\u003C/i> et du calcul \u003Ci>bc\u003C/i> pour trouver combien de mémoire un process utilise.\u003C/p>\n\n\u003Cp>Hey, tu sais quoi? Je vais demander à un modèle d'\u003Cb>INTELLIGENCE\u003C/b> artificielle!\u003C/p>\n\n\u003Cp>Je vois dans sa réflexion qu'il s'étonne que j'ai pas précisé de langage et choisit dès lors BASH parce qu'il trouve ça hyper logique comme choix.\u003C/p>\n\n\u003Cp>Attendez quand l'IA va découvrir l'existence de \u003Cb>Perl\u003C/b>, là on approchera de la \u003Ci>super&nbsp;intelligence\u003C/i> ou je sais pas comment ils appeleront les modèles de langage d'ici là.\u003C/p>\n\n\u003Cp>Bon j'ai pas vérifié si le résultat du script est correct mais ça a l'air.\u003C/p>\n\n\u003Cp>Le bougre flex bien avec sa maîtrise de \u003Cb>printf\u003C/b>:\u003C/p>\n\n\u003Cpre class=\"shiki shiki-themes catppuccin-latte kanagawa-wave\" style=\"background-color:#eff1f5;--shiki-dark-bg:#1F1F28;color:#4c4f69;--shiki-dark:#DCD7BA\" tabindex=\"0\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#4C4F69;--shiki-dark:#DCD7BA\">total_kb\u003C/span>\u003Cspan style=\"color:#179299;--shiki-dark:#E6C384\">=\u003C/span>\u003Cspan style=\"color:#40A02B;--shiki-dark:#98BB6C\">0\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#7C7F93;--shiki-dark:#9CABCA\">{\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#8839EF;--shiki-dark:#957FB8\">  if\u003C/span>\u003Cspan style=\"color:#7C7F93;--shiki-dark:#9CABCA\"> [[\u003C/span>\u003Cspan style=\"color:#40A02B;--shiki-dark:#98BB6C\"> \"\u003C/span>\u003Cspan style=\"color:#4C4F69;--shiki-dark:#DCD7BA\">$list\u003C/span>\u003Cspan style=\"color:#40A02B;--shiki-dark:#98BB6C\">\"\u003C/span>\u003Cspan style=\"color:#179299;--shiki-dark:#E6C384\"> -eq\u003C/span>\u003Cspan style=\"color:#FE640B;--shiki-dark:#D27E99\"> 1\u003C/span>\u003Cspan style=\"color:#7C7F93;--shiki-dark:#9CABCA\"> ]];\u003C/span>\u003Cspan style=\"color:#8839EF;--shiki-dark:#957FB8\"> then\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#D20F39;--shiki-light-font-style:italic;--shiki-dark:#7E9CD8;--shiki-dark-font-style:inherit\">    printf\u003C/span>\u003Cspan style=\"color:#40A02B;--shiki-dark:#98BB6C\"> '%-8s %10s  %s\\n'\u003C/span>\u003Cspan style=\"color:#40A02B;--shiki-dark:#98BB6C\"> \"pid\"\u003C/span>\u003Cspan style=\"color:#40A02B;--shiki-dark:#98BB6C\"> \"\u003C/span>\u003Cspan style=\"color:#4C4F69;--shiki-dark:#9CABCA\">${\u003C/span>\u003Cspan style=\"color:#4C4F69;--shiki-dark:#DCD7BA\">mode\u003C/span>\u003Cspan style=\"color:#40A02B;--shiki-dark:#98BB6C\">^^\u003C/span>\u003Cspan style=\"color:#4C4F69;--shiki-dark:#9CABCA\">}\u003C/span>\u003Cspan style=\"color:#40A02B;--shiki-dark:#98BB6C\">(kb)\"\u003C/span>\u003Cspan style=\"color:#40A02B;--shiki-dark:#98BB6C\"> \"command\"\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#8839EF;--shiki-dark:#957FB8\">  fi\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#8839EF;--shiki-dark:#957FB8\">  for\u003C/span>\u003Cspan style=\"color:#4C4F69;--shiki-dark:#DCD7BA\"> pid \u003C/span>\u003Cspan style=\"color:#8839EF;--shiki-dark:#957FB8\">in\u003C/span>\u003Cspan style=\"color:#40A02B;--shiki-dark:#98BB6C\"> \"\u003C/span>\u003Cspan style=\"color:#4C4F69;--shiki-dark:#9CABCA\">${\u003C/span>\u003Cspan style=\"color:#4C4F69;--shiki-dark:#DCD7BA\">pids\u003C/span>\u003Cspan style=\"color:#7C7F93;--shiki-dark:#9CABCA\">[\u003C/span>\u003Cspan style=\"color:#179299;--shiki-dark:#E6C384\">@\u003C/span>\u003Cspan style=\"color:#7C7F93;--shiki-dark:#9CABCA\">]\u003C/span>\u003Cspan style=\"color:#4C4F69;--shiki-dark:#9CABCA\">}\u003C/span>\u003Cspan style=\"color:#40A02B;--shiki-dark:#98BB6C\">\"\u003C/span>\u003Cspan style=\"color:#7C7F93;--shiki-dark:#9CABCA\">;\u003C/span>\u003Cspan style=\"color:#8839EF;--shiki-dark:#957FB8\"> do\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#8839EF;--shiki-dark:#957FB8\">    if\u003C/span>\u003Cspan style=\"color:#7C7F93;--shiki-dark:#9CABCA\"> [[\u003C/span>\u003Cspan style=\"color:#40A02B;--shiki-dark:#98BB6C\"> \"\u003C/span>\u003Cspan style=\"color:#4C4F69;--shiki-dark:#DCD7BA\">$mode\u003C/span>\u003Cspan style=\"color:#40A02B;--shiki-dark:#98BB6C\">\"\u003C/span>\u003Cspan style=\"color:#179299;--shiki-dark:#E6C384\"> ==\u003C/span>\u003Cspan style=\"color:#40A02B;--shiki-dark:#98BB6C\"> \"pss\"\u003C/span>\u003Cspan style=\"color:#7C7F93;--shiki-dark:#9CABCA\"> ]];\u003C/span>\u003Cspan style=\"color:#8839EF;--shiki-dark:#957FB8\"> then\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#7C7F93;--shiki-light-font-style:italic;--shiki-dark:#727169;--shiki-dark-font-style:inherit\">      # sum pss from smaps_rollup (fallback: smaps).\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#8839EF;--shiki-dark:#957FB8\">      if\u003C/span>\u003Cspan style=\"color:#7C7F93;--shiki-dark:#9CABCA\"> [[\u003C/span>\u003Cspan style=\"color:#179299;--shiki-dark:#E6C384\"> -r\u003C/span>\u003Cspan style=\"color:#40A02B;--shiki-dark:#98BB6C\"> \"/proc/\u003C/span>\u003Cspan style=\"color:#4C4F69;--shiki-dark:#DCD7BA\">$pid\u003C/span>\u003Cspan style=\"color:#40A02B;--shiki-dark:#98BB6C\">/smaps_rollup\"\u003C/span>\u003Cspan style=\"color:#7C7F93;--shiki-dark:#9CABCA\"> ]];\u003C/span>\u003Cspan style=\"color:#8839EF;--shiki-dark:#957FB8\"> then\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#4C4F69;--shiki-dark:#DCD7BA\">        mem\u003C/span>\u003Cspan style=\"color:#179299;--shiki-dark:#E6C384\">=\u003C/span>\u003Cspan style=\"color:#7C7F93;--shiki-dark:#9CABCA\">$(\u003C/span>\u003Cspan style=\"color:#1E66F5;--shiki-light-font-style:italic;--shiki-dark:#7AA89F;--shiki-dark-font-style:inherit\">awk\u003C/span>\u003Cspan style=\"color:#40A02B;--shiki-dark:#98BB6C\"> '/^pss:/ {s+=$2} end {print s+0}'\u003C/span>\u003Cspan style=\"color:#40A02B;--shiki-dark:#98BB6C\"> \"/proc/\u003C/span>\u003Cspan style=\"color:#4C4F69;--shiki-dark:#DCD7BA\">$pid\u003C/span>\u003Cspan style=\"color:#40A02B;--shiki-dark:#98BB6C\">/smaps_rollup\"\u003C/span>\u003Cspan style=\"color:#179299;--shiki-dark:#E6C384\"> 2>\u003C/span>\u003Cspan style=\"color:#40A02B;--shiki-dark:#98BB6C\">/dev/null\u003C/span>\u003Cspan style=\"color:#179299;--shiki-dark:#E6C384\"> ||\u003C/span>\u003Cspan style=\"color:#D20F39;--shiki-light-font-style:italic;--shiki-dark:#7E9CD8;--shiki-dark-font-style:inherit\"> echo\u003C/span>\u003Cspan style=\"color:#FE640B;--shiki-dark:#D27E99\"> 0\u003C/span>\u003Cspan style=\"color:#7C7F93;--shiki-dark:#9CABCA\">)\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#8839EF;--shiki-dark:#957FB8\">      else\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#4C4F69;--shiki-dark:#DCD7BA\">        mem\u003C/span>\u003Cspan style=\"color:#179299;--shiki-dark:#E6C384\">=\u003C/span>\u003Cspan style=\"color:#7C7F93;--shiki-dark:#9CABCA\">$(\u003C/span>\u003Cspan style=\"color:#1E66F5;--shiki-light-font-style:italic;--shiki-dark:#7AA89F;--shiki-dark-font-style:inherit\">awk\u003C/span>\u003Cspan style=\"color:#40A02B;--shiki-dark:#98BB6C\"> '/^pss:/ {s+=$2} end {print s+0}'\u003C/span>\u003Cspan style=\"color:#40A02B;--shiki-dark:#98BB6C\"> \"/proc/\u003C/span>\u003Cspan style=\"color:#4C4F69;--shiki-dark:#DCD7BA\">$pid\u003C/span>\u003Cspan style=\"color:#40A02B;--shiki-dark:#98BB6C\">/smaps\"\u003C/span>\u003Cspan style=\"color:#179299;--shiki-dark:#E6C384\"> 2>\u003C/span>\u003Cspan style=\"color:#40A02B;--shiki-dark:#98BB6C\">/dev/null\u003C/span>\u003Cspan style=\"color:#179299;--shiki-dark:#E6C384\"> ||\u003C/span>\u003Cspan style=\"color:#D20F39;--shiki-light-font-style:italic;--shiki-dark:#7E9CD8;--shiki-dark-font-style:inherit\"> echo\u003C/span>\u003Cspan style=\"color:#FE640B;--shiki-dark:#D27E99\"> 0\u003C/span>\u003Cspan style=\"color:#7C7F93;--shiki-dark:#9CABCA\">)\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#8839EF;--shiki-dark:#957FB8\">      fi\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#8839EF;--shiki-dark:#957FB8\">    else\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#7C7F93;--shiki-light-font-style:italic;--shiki-dark:#727169;--shiki-dark-font-style:inherit\">      # rss from statm: field 2 is resident pages.\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#4C4F69;--shiki-dark:#DCD7BA\">      mem\u003C/span>\u003Cspan style=\"color:#179299;--shiki-dark:#E6C384\">=\u003C/span>\u003Cspan style=\"color:#7C7F93;--shiki-dark:#9CABCA\">$(\u003C/span>\u003Cspan style=\"color:#1E66F5;--shiki-light-font-style:italic;--shiki-dark:#7AA89F;--shiki-dark-font-style:inherit\">awk\u003C/span>\u003Cspan style=\"color:#40A02B;--shiki-dark:#98BB6C\"> -v\u003C/span>\u003Cspan style=\"color:#40A02B;--shiki-dark:#98BB6C\"> p=\"\u003C/span>\u003Cspan style=\"color:#4C4F69;--shiki-dark:#DCD7BA\">$page_kb\u003C/span>\u003Cspan style=\"color:#40A02B;--shiki-dark:#98BB6C\">\"\u003C/span>\u003Cspan style=\"color:#40A02B;--shiki-dark:#98BB6C\"> '{print $2 * p}'\u003C/span>\u003Cspan style=\"color:#40A02B;--shiki-dark:#98BB6C\"> \"/proc/\u003C/span>\u003Cspan style=\"color:#4C4F69;--shiki-dark:#DCD7BA\">$pid\u003C/span>\u003Cspan style=\"color:#40A02B;--shiki-dark:#98BB6C\">/statm\"\u003C/span>\u003Cspan style=\"color:#179299;--shiki-dark:#E6C384\"> 2>\u003C/span>\u003Cspan style=\"color:#40A02B;--shiki-dark:#98BB6C\">/dev/null\u003C/span>\u003Cspan style=\"color:#179299;--shiki-dark:#E6C384\"> ||\u003C/span>\u003Cspan style=\"color:#D20F39;--shiki-light-font-style:italic;--shiki-dark:#7E9CD8;--shiki-dark-font-style:inherit\"> echo\u003C/span>\u003Cspan style=\"color:#FE640B;--shiki-dark:#D27E99\"> 0\u003C/span>\u003Cspan style=\"color:#7C7F93;--shiki-dark:#9CABCA\">)\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#8839EF;--shiki-dark:#957FB8\">    fi\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#7C7F93;--shiki-dark:#9CABCA\">    [[\u003C/span>\u003Cspan style=\"color:#40A02B;--shiki-dark:#98BB6C\"> \"\u003C/span>\u003Cspan style=\"color:#4C4F69;--shiki-dark:#DCD7BA\">$mem\u003C/span>\u003Cspan style=\"color:#40A02B;--shiki-dark:#98BB6C\">\"\u003C/span>\u003Cspan style=\"color:#179299;--shiki-dark:#E6C384\"> =~\u003C/span>\u003Cspan style=\"color:#4C4F69;--shiki-dark:#DCD7BA\"> ^\u003C/span>\u003Cspan style=\"color:#7C7F93;--shiki-dark:#9CABCA\">[\u003C/span>\u003Cspan style=\"color:#4C4F69;--shiki-dark:#DCD7BA\">0-9\u003C/span>\u003Cspan style=\"color:#7C7F93;--shiki-dark:#9CABCA\">]\u003C/span>\u003Cspan style=\"color:#4C4F69;--shiki-dark:#DCD7BA\">+$ \u003C/span>\u003Cspan style=\"color:#7C7F93;--shiki-dark:#9CABCA\">]]\u003C/span>\u003Cspan style=\"color:#179299;--shiki-dark:#E6C384\"> ||\u003C/span>\u003Cspan style=\"color:#4C4F69;--shiki-dark:#DCD7BA\"> mem\u003C/span>\u003Cspan style=\"color:#179299;--shiki-dark:#E6C384\">=\u003C/span>\u003Cspan style=\"color:#40A02B;--shiki-dark:#98BB6C\">0\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#4C4F69;--shiki-dark:#DCD7BA\">    total_kb\u003C/span>\u003Cspan style=\"color:#179299;--shiki-dark:#E6C384\">=\u003C/span>\u003Cspan style=\"color:#7C7F93;--shiki-dark:#9CABCA\">$((\u003C/span>\u003Cspan style=\"color:#1E66F5;--shiki-light-font-style:italic;--shiki-dark:#7AA89F;--shiki-dark-font-style:inherit\">total_kb\u003C/span>\u003Cspan style=\"color:#40A02B;--shiki-dark:#98BB6C\"> +\u003C/span>\u003Cspan style=\"color:#40A02B;--shiki-dark:#98BB6C\"> mem\u003C/span>\u003Cspan style=\"color:#7C7F93;--shiki-dark:#9CABCA\">))\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#8839EF;--shiki-dark:#957FB8\">    if\u003C/span>\u003Cspan style=\"color:#7C7F93;--shiki-dark:#9CABCA\"> [[\u003C/span>\u003Cspan style=\"color:#40A02B;--shiki-dark:#98BB6C\"> \"\u003C/span>\u003Cspan style=\"color:#4C4F69;--shiki-dark:#DCD7BA\">$list\u003C/span>\u003Cspan style=\"color:#40A02B;--shiki-dark:#98BB6C\">\"\u003C/span>\u003Cspan style=\"color:#179299;--shiki-dark:#E6C384\"> -eq\u003C/span>\u003Cspan style=\"color:#FE640B;--shiki-dark:#D27E99\"> 1\u003C/span>\u003Cspan style=\"color:#7C7F93;--shiki-dark:#9CABCA\"> ]];\u003C/span>\u003Cspan style=\"color:#8839EF;--shiki-dark:#957FB8\"> then\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#4C4F69;--shiki-dark:#DCD7BA\">      cmd\u003C/span>\u003Cspan style=\"color:#179299;--shiki-dark:#E6C384\">=\u003C/span>\u003Cspan style=\"color:#7C7F93;--shiki-dark:#9CABCA\">$(\u003C/span>\u003Cspan style=\"color:#1E66F5;--shiki-light-font-style:italic;--shiki-dark:#7AA89F;--shiki-dark-font-style:inherit\">tr\u003C/span>\u003Cspan style=\"color:#40A02B;--shiki-dark:#98BB6C\"> '\\0'\u003C/span>\u003Cspan style=\"color:#40A02B;--shiki-dark:#98BB6C\"> ' '\u003C/span>\u003Cspan style=\"color:#179299;--shiki-dark:#E6C384\"> &#x3C;\u003C/span>\u003Cspan style=\"color:#40A02B;--shiki-dark:#98BB6C\"> \"/proc/\u003C/span>\u003Cspan style=\"color:#4C4F69;--shiki-dark:#DCD7BA\">$pid\u003C/span>\u003Cspan style=\"color:#40A02B;--shiki-dark:#98BB6C\">/cmdline\"\u003C/span>\u003Cspan style=\"color:#179299;--shiki-dark:#E6C384\"> 2>\u003C/span>\u003Cspan style=\"color:#40A02B;--shiki-dark:#98BB6C\">/dev/null\u003C/span>\u003Cspan style=\"color:#179299;--shiki-dark:#E6C384\"> |\u003C/span>\u003Cspan style=\"color:#1E66F5;--shiki-light-font-style:italic;--shiki-dark:#7AA89F;--shiki-dark-font-style:inherit\"> cut\u003C/span>\u003Cspan style=\"color:#40A02B;--shiki-dark:#98BB6C\"> -c1-80\u003C/span>\u003Cspan style=\"color:#7C7F93;--shiki-dark:#9CABCA\">)\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#D20F39;--shiki-light-font-style:italic;--shiki-dark:#7E9CD8;--shiki-dark-font-style:inherit\">      printf\u003C/span>\u003Cspan style=\"color:#40A02B;--shiki-dark:#98BB6C\"> '%-8s %10s  %s\\n'\u003C/span>\u003Cspan style=\"color:#40A02B;--shiki-dark:#98BB6C\"> \"\u003C/span>\u003Cspan style=\"color:#4C4F69;--shiki-dark:#DCD7BA\">$pid\u003C/span>\u003Cspan style=\"color:#40A02B;--shiki-dark:#98BB6C\">\"\u003C/span>\u003Cspan style=\"color:#40A02B;--shiki-dark:#98BB6C\"> \"\u003C/span>\u003Cspan style=\"color:#4C4F69;--shiki-dark:#DCD7BA\">$mem\u003C/span>\u003Cspan style=\"color:#40A02B;--shiki-dark:#98BB6C\">\"\u003C/span>\u003Cspan style=\"color:#40A02B;--shiki-dark:#98BB6C\"> \"\u003C/span>\u003Cspan style=\"color:#4C4F69;--shiki-dark:#DCD7BA\">$cmd\u003C/span>\u003Cspan style=\"color:#40A02B;--shiki-dark:#98BB6C\">\"\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#8839EF;--shiki-dark:#957FB8\">    fi\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#8839EF;--shiki-dark:#957FB8\">  done\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#7C7F93;--shiki-dark:#9CABCA\">}\u003C/span>\u003Cspan style=\"color:#4C4F69;--shiki-dark:#DCD7BA\"> \u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003C/span>\u003C/code>\u003C/pre>\n\n\u003Cp>Je connaissais pas les accolades en POSIX&nbsp;shell, toujours chouette d'apprendre un nouveau truc par contre je comprends pas pouquoi il a utilisé ça à cet endroit. On saura jamais spa grave.\u003C/p>\n\n\u003Cp>On voit qu'il n'utilise pas du tout la commande \u003Cb>ps\u003C/b> et va tout chercher dans \u003Cb>/proc\u003C/b> (ce que \u003Cb>ps\u003C/b> fait aussi en dessous du capot).\u003C/p>\n\n\u003Cp>On voyait déjà quelques petits \u003Cb>scripts awk\u003C/b> dans le premier extrait mais à la fin il a pondu un vrai gros script awk des familles:\u003C/p>\n\n\u003Cpre class=\"shiki shiki-themes catppuccin-latte kanagawa-wave\" style=\"background-color:#eff1f5;--shiki-dark-bg:#1F1F28;color:#4c4f69;--shiki-dark:#DCD7BA\" tabindex=\"0\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#1E66F5;--shiki-light-font-style:italic;--shiki-dark:#7E9CD8;--shiki-dark-font-style:inherit\">human\u003C/span>\u003Cspan style=\"color:#7C7F93;--shiki-dark:#9CABCA\">()\u003C/span>\u003Cspan style=\"color:#7C7F93;--shiki-dark:#9CABCA\"> {\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#8839EF;--shiki-dark:#957FB8\">  local\u003C/span>\u003Cspan style=\"color:#4C4F69;--shiki-dark:#DCD7BA\"> kb\u003C/span>\u003Cspan style=\"color:#179299;--shiki-dark:#E6C384\">=\u003C/span>\u003Cspan style=\"color:#E64553;--shiki-light-font-style:italic;--shiki-dark:#DCD7BA;--shiki-dark-font-style:inherit\">$1\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#1E66F5;--shiki-light-font-style:italic;--shiki-dark:#7AA89F;--shiki-dark-font-style:inherit\">  awk\u003C/span>\u003Cspan style=\"color:#40A02B;--shiki-dark:#98BB6C\"> -v\u003C/span>\u003Cspan style=\"color:#40A02B;--shiki-dark:#98BB6C\"> kb=\"\u003C/span>\u003Cspan style=\"color:#4C4F69;--shiki-dark:#DCD7BA\">$kb\u003C/span>\u003Cspan style=\"color:#40A02B;--shiki-dark:#98BB6C\">\"\u003C/span>\u003Cspan style=\"color:#40A02B;--shiki-dark:#98BB6C\"> 'BEGIN {\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#40A02B;--shiki-dark:#98BB6C\">    split(\"kB MB GB TB\", u, \" \");\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#40A02B;--shiki-dark:#98BB6C\">    i = 1;\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#40A02B;--shiki-dark:#98BB6C\">    while (kb >= 1024 &#x26;&#x26; i &#x3C; 4) { kb /= 1024; i++ }\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#40A02B;--shiki-dark:#98BB6C\">    printf \"%.2f %s\\n\", kb, u[i]\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#40A02B;--shiki-dark:#98BB6C\">  }'\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#7C7F93;--shiki-dark:#9CABCA\">}\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003C/span>\u003C/code>\u003C/pre>\n\n\u003Cp>Je me demande où le modèle a appris ce genre de trucs, personne n'utilise des scripts awk de plus d'une ligne depuis les années 80.\u003C/p>\n\n\u003Cp>J'imagine qu'il a lu le manuel ou un truc du genre.\u003C/p>\n\n\u003Cp>Bon et j'ai pas investigué davantage mais ce script est super lent lol\u003C/p>\n\n\u003Cp>\n\u003Cimg-lightbox>\u003Ca href=\"/stuff/braveo/brave_mem_count_time.png\" target=\"_blank\">\u003Cimg src=\"/stuff/braveo/brave_mem_count_time.png\" alt=\"le script a mis 3.7s à calculer que Brave prend 3.59GB de mémoire\" class=\"responsive-img center-image\">\u003C/a>\u003C/img-lightbox>\n\u003C/p>\n\n\u003Cp>A mon avis (j'ai pas vérifié), c'est dû à une boucle \u003Ci>for\u003C/i> dégeulasse qui parcourt absolument tous les processus de \u003Cb>/proc\u003C/b> en cherchant chaque fois ceux dont \u003Cb>cmdline\u003C/b> contient la valeur \"/opt/brave\".\u003C/p>\n\n\u003Cp>Cette boucle précède le premier extrait de code posé plus haut.\u003C/p>\n\n\u003Cp>D'un côté ça ne fait que ~450 processus mais \u003Cb>bash\u003C/b> n'est pas connu pour sa célérité.\u003C/p>\n\n\u003Cp>Plus important, quand je mesure la mémoire utilisée par Brave&nbsp;Origin (sans aucune fonctionnalité activée) j'ai juste un process en moins, et du coup quelques dizaines de MB en moins mais par rapport à 3GB ça change pas grand chose:\u003C/p>\n\n\u003Cp>\n\u003Cimg-lightbox>\u003Ca href=\"/stuff/braveo/brave_origin_mem.png\" target=\"_blank\">\u003Cimg src=\"/stuff/braveo/brave_origin_mem.png\" alt=\"mémoire utilisée par Brave Origin: 3.42GB\" class=\"responsive-img center-image\">\u003C/a>\u003C/img-lightbox>\n\u003C/p>\n\n\u003Cp>Mais, alors, pourquoi utiliser \u003Cb>Brave Origin\u003C/b>?\u003C/p>\n\n\u003Cp>Pourquoi??\u003C/p>\n\n",[],{"readingTimeStr":15,"toc":16},"6 minutes de lecture (facile)","",1792329874944]