• [^] # Re: Plus léger ?

    Posté par (site web personnel) . En réponse à la dépêche Sortie de GNU LibreJS 4.7. Évalué à 10.

    Sources ?

    Et les tiennes justement elles sont où ?

    Minifier le JS, ça sert juste à raccourcir un peu le temps de chargement. Mais en fait, ça ne change quasiment rien si on le gzip, ou si on gère bien son cache

    Ha ben j'aimerais bien voir ça…

    vu que tout le monde utilise les même libs

    Sauf que c'est pas la réalité des choses ça. Et même si c'était le cas, certains ont inventés les CDN…

    Je dirais que l'argument de la performance est fallacieux car même si ça joue un tout petit peu, le bénéfice de l'obfuscation dans le sens de rendre la compréhension du code difficile est très apprécié par beaucoup de ses partisans.

    Sauf que d'ailleurs (en général) personne ne parle d'obfuscation en javascript. Mais on parle bien de minification, de compression. Mais bon, c'est tellement facile de voir le mal et de dire que c'est rien que des méchants.

    Si je vais une application / site web libre, tu peux être assuré d'une chose c'est que la version destinée à être exécutée et publiée sera minifiée, compilée et gzippée. Sauf que ça ne changera rien du tout au caractère libre de la chose. Et en aucun cas le but sera de masquer le code à l'utilisateur.

    Allez, prenons un exemple réel, le dernier site (grand public, je parle pas d'un petit site à la con - c'est la partie localisation d'agences d'un site, je ne parle pas du site en entier) que j'ai monté pour un client :

    • 91 fichiers javascript (en prenant en compte les fichiers provenant de la bibliothèque utilisée)
      • si je laisse comme ça c'est quand même 91 requêtes http avant d'avoir mon code chargé
      • version commentée, propre, justement pas minifiée : 1531 ko
      • onload : 2.86s (et encore je suis en local, j'ose même pas imaginer la catastrophe en prenant en compte la latence du réseau)
    • une version simplement concaténée et gzipée tombe à 326 ko (c'est quand même beaucoup beaucoup mieux, mais c'est encore beaucoup beaucoup trop)
    • version concaténée en enlevant tous les commentaires, lignes vides, mais en gardant une mise en forme (sauts de ligne, etc)
      • 722 ko
      • version gzip : 134 ko (tiens on est déjà à un facteur 10 !)
    • la même sans la mise en forme :
      • 641ko
      • version gzip : 127 ko (ok là on ne gagne pas grand chose)
    • version minifiée (renomage des variables par exemple) :
      • 351 ko
      • version gzip : 85 ko (facteur 1.6 par rapport à la version où on enlève les commentaires quand même…)
    • version compilée (clairement illisible mais avec suppression du code mort, inlining des fonctions, réellement axé performances) :
      • 92 ko (à peine plus que la précédente gzip)
      • version gzip : 33 ko : facteur 46 par rapport à la première mesure, facteur 4 par rapport à la version lisible non commentée mais gzip et quasiment un facteur 10 avec la version initiale commentée et gzipée.
      • onload : 1.17s

    Et donc maintenant tu veux me faire croire que ça joue un tout petit peu ? Ca charge 2x plus vite. Ca utilise 4x moins de bande passante (loin d'être négligeable sur un serveur d'une appli grand publique donc avec beaucoup de trafic). Mais non, ça ne change rien et l'obfuscation et là pour emmerder ceux qui voudraient lire le contenu du js.

    Mouai, ben maintenant ça serait pas mal que tu sortes tes sources pour dire que ça sert à rien car clairement j'y crois pas.