GNU social JP
  • FAQ
  • Login
GNU social JPは日本のGNU socialサーバーです。
Usage/ToS/admin/test/Pleroma FE
  • Public

    • Public
    • Network
    • Groups
    • Featured
    • Popular
    • People

Embed Notice

HTML Code

Corresponding Notice

  1. Embed this notice
    Haelwenn /элвэн/ :triskell: (lanodan@queer.hacktivis.me)'s status on Sunday, 01-Dec-2024 20:35:43 JSTHaelwenn /элвэн/ :triskell:Haelwenn /элвэн/ :triskell:
    in reply to
    • Stéphane Bortzmeyer
    • Gérard Fadrelle

    @gfadrelle @bortzmeyer C'est faux au moins en théorie, tu peux utiliser tous les registres que tu veux en assembleur, après en pratique ça va être dur de mieux optimiser qu'un compilateur, pour tout un tas de raisons.

    Par contre un compilo, même basique, va faire des optimisations comme:

    • Éliminer le code non-utilisé (d'où volatile en C pour les variables, pour indiquer au compilo' qu'en fait si, y'en as besoin);
    • Dédupliquer le code, ça arrive de se répéter, surtout dans des gros projets;
    • Réordonner les structures pour prendre moins de mémoire, mais sans casser l'alignement;
    • Utiliser les extensions CPUs (SSE2, AVX, …), assez casse-pied à écrire, faciles à oublier, et pas présentes dans tous les CPUs;
    • Si tu dit d'optimiser pour la taille et sur des architectures comme x86_{32,64} c'est utiliser des instructions équivalentes mais qui prennent moins de place une fois assemblées;

    Et avec un compilo' un peu avancé et pour architecture super-scalaire (la plupart actuellement le sont), tu va avoir le code agencé pour que le CPU puisse exécuter plusieurs instructions indépendantes en même temps.

    In conversationabout 5 months ago from queer.hacktivis.mepermalink
  • Help
  • About
  • FAQ
  • TOS
  • Privacy
  • Source
  • Version
  • Contact

GNU social JP is a social network, courtesy of GNU social JP管理人. It runs on GNU social, version 2.0.2-dev, available under the GNU Affero General Public License.

Creative Commons Attribution 3.0 All GNU social JP content and data are available under the Creative Commons Attribution 3.0 license.