Des techniques d'optimisation de la memoire en Java. Pour @Animal
Tout est dans le titre. Comment réduire et optimiser son build Rust.
L'idée est de tirer 100% des optimisations possibles sur une architecture donnée pour ne cibler qu'elle mais ne plus être portable en contrepartie.
Il suffit de déclarer la variable d'environnement RUSTFLAGS
comme ceci :
# Cibler la plateforme sur laquelle est construit le binaire
RUSTFLAGS="-C target-cpu=native"
# CPU Intel
RUSTFLAGS="-C target-cpu=skylake"
# CPU AMD
RUSTFLAGS="-C target-cpu=znver2"
Tout un tas de recommandations pour optimiser Docker. Cela va des temps de construction des conteneurs en passant par leur taille et allant jusqu'au runtime. Des choses sûrement déjà dites mais ce type de synthèse sert toujours.
Via Memiks.
Un article en trois parties vraiment très bon et qui tombe pile poil au moment où je suis en train de regarder pour réduire la taille des images Dockers de plusieurs projets.
Je sens que ça va intéresser @Philou :
- Lien vers la partie 1.
- Lien vers la partie 2.
- Lien vers la partie 3.
Via Liandri.
Optimisez vos images mais sans perte. Je pense intégrer l'outil dans notre build Gulp.
Bon ça fait deux années maintenant et je sais où j'en suis niveau langage de programmation : de toutes les syntaxes, ma préférée est sans aucun doute et de trèèès loin celle de Kotlin (sauf pour les get / set).
Par contre, le meilleur compilateur du marché est celui de Rust, il n'y a pas photo. J'ai vraiment hâte que Kotlin Native décolle 😉 !
Via Riduidel.
Comment configurer et améliorer le build d'une application Aurelia via le plugin aurelia-webpack-plugin ?
Pour tout vous dire et sans trop forcer hier soir, en reparamétrant le build d'un des projets de @Lenny et @Kysofer, la taille du bundle JS s'est réduite de 12,8% et au vu de mes tests, nous devrions êtres en mesure de récupérer 15% à 20% de plus.
Cela fait de nos SPA que leurs pages d'accueil ne dépassent jamais les 685 Ko tout compris (ie. HTML + JS + CSS + IMG + FONTS) et moins de 180 Ko en utilisant une compression Gzip sur les fichiers statiques.
En ajoutant à cela un cycle de release non continu pour ne pas perdre les bénéfices de la mise en cache côté navigateurs, nous nous retrouvons avec une page de garde ne requérant plus que 3,6 Ko à télécharger lors de la seconde connexion et des suivantes.
Essayez d'en faire autant avec Angular et Bootstrap ! Je maintiens que le combo TypeScript + SCSS + Aurelia + Bulma + Karla Fonts + Font Awesome + TinyPNG est le plus efficace. J'ai vraiment hâte de passer à Aurelia 2 en 2020 !!! ٩(◕‿◕。)۶
Comment installer, configurer, tuner et sécuriser son instance nginx.
Via Hedi
Réduire la taille de son bundle JS en supprimant les dépendances inutilisées. Fonctionne pour Vue.js mais doit aussi fonctionner pour Aurelia.
Et encore une fois, ce lien est remonté par Kalvn.
Je résume, si vos tests unitaires sont deux à deux distincts, s'ils n'engendre pas de conflits lors de leur exécution en parallèle (donc il faut dissocier les TU des TI qui quant à eux s'appuient sur l'injection de dépendances) alors vous pouvez dire à Surefire d'exécuter en parallèle autant de TEST que vous avez de Thread CPU de disponibles.
Après un benchmark succinct, j'ai divisé par 5 le temps d'exécution de mes tests sur un 4 cœurs physiques et 8 cœurs logiques via la technologique HT (Hyper-Threading chez Intel / Hyper-Transport chez AMD).
Voici comment faire :
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>3.0.0-M3</version>
<configuration>
<forkCount>1C</forkCount> <!-- C'est la même commande que pour Maven, 1 thread / CPU -->
<reuseForks>true</reuseForks>
</plugin>
Je regarderai cela plus tard !
Je résume l'idée :
- Créer plein de petites instances immutables est plus coûteux que d'en réutiliser une mutable.
- Mais il ne peut pas avoir de graphes d'instanciations entre les anciennes et les nouvelles instances, avec une programmation totalement immutable (puisque les anciennes n'étant jamais modifiées, elles ne pointeront jamais vers les nouvelles).
- De ce fait les temps de garbage collection sont bien plus courts.
Donc nous perdons du temps de calcul pendant l'instanciation pour en récupérer une partie durant la garbage collection.
Pour allier le meilleur des deux mondes, il faut utiliser des objets immutables tout le temps, sauf dans un seul cas de figure qui répond aux contraintes suivantes :
- Je dois modifier beaucoup de fois le même objet immutable avant d'obtenir son état final.
- Je vais donc passer par un objet mutable pour le construire.
- Cet objet mutable doit être instancié et garbage collecté dans la même méthode.
Par exemple, utiliser un StringBuilder pour créer une String immutable en Java (et ne pas partager ce StringBuilder avec un tiers ou encore le mettre en attribut).
These notes describes how to improve Nginx performance, security and other important things...
Tout est dans le titre.
Lien lien direct.
How to enable pipelining
You can enable pipelining by simply adding pipelining = True to the [ssh_connection] area of your ansible.cfg or by by using the ANSIBLE_PIPELINING and ANSIBLE_SSH_PIPELINING environment variables.
Comment accélérer nos déploiement Ansible. Mes chéris, c'est pour vous !!
Pour ceux qui sont contraints d'utiliser Windaube afin de faire tourner des jeux en VR. Il y a moyen ici de virer un tas de trucs, d'améliorer les performances et du même coup d'améliorer sensiblement la protection de votre vie privée.
Enfin, si vous êtes sous Windaube, faut pas rêver non plus !
Comment ça, « ça n'a rien à voir » ?
Bon, vous l'aurez compris, on va causer à la fois informatique et politique… et j'vais encore être grossier, mais ils m'énervent à la fin, avec leurs conneries. Rooogn'tudju.
Très bon parallèle de Grisebouille exposant les techniques d'optimisation de code appliquées à la fraude fiscale.
Plein d'articles sur le sujet. Cool j'en avais besoin :D
Optimisation fiscale pour les travaux d'amélioration.
J'ai repris certains points comme les DNS de FDN, merci Seb.