Une introduction à ce qu'il est possible de mesurer à l'aide de l'utilitaire jcmd
embarqué dans les JDK.
Tout est dans le titre. Je suis en train de comparer plusieurs choses actuellement :
-
Le surcoût que représente la JRE 17 sur une application Kotlin.
-
Le gain qu'apporte une JRE 17 custom produite à l'aide de l'utilitaire JLink.
-
Les performances de (1) et (2) face à la même application codée en Rust, en termes de consommation mémoire et d'opérations par seconde.
-
Les nouvelles options que la JRE prends en paramètre et leurs effets sur le CPU, la mémoire et le débit.
Le tuning de JRE a toujours été compliqué, mais pour obtenir une JRE de 30 Mo optimisée comme il faut, il y a encore plus de choses à connaître et comprendre qu'avant. Damned !
Réduire la taille de votre lib Font Awesome en ne conservant que les icônes dont vous vous servez. La webapp permettant de le faire est disponible ici.
Je vais regarder pour faire la même chose dans une tâche Gulp car les Font Awesome consomment entre 120 Ko et 440 Ko, ce qui n'est pas négligeable du tout !
Edit : voici un article complémentaire tiré de la documentation du projet OpenJDK sur le class-sharing de la JVM.
Précharger des classes pour démarrer une JVM plus vite. Je viens de faire le test avec Maven et ça a l'air de marcher un petit peu (mais le gain est négligeable lorsque l'on compare les temps de build à Gradle).
Toujours est-il que si cela peut apporter un peu de confort à certains, ou encore réduire les temps de démarrage des conteneurs, alors ça vaut le coup.
Merci à @Philou pour le lien.
Je le note pour @Kysofer qui doit gérer une PIC.
Si vos requêtes de push/pull/clone sont trop grosses et que Git vous affiche une erreur du type Github Push Error: RPC failed; result=22, HTTP code = 413
alors vous avez probablement deux choses à faire :
1) Augmenter la taille du buffer côté Git.
J'ai fixé la valeur à 1 Gio, car tous mes PC ont au moins 8 Go de RAM et tournent sous Linux. À noter que cela a grandement accéléré mes requêtes de pull/push/clone (je suis passée de 4 Mo/sec à 25 Mo/sec) :
git config --global http.postBuffer 1073741824
2) Augmenter la taille du cache côté Nginx s'il est en front à votre serveur Git (Gitea chez moi).
client_max_body_size 512m;
Et ne pas oublier de redémarrer Nginx via un systemctl restart nginx
.
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.
Comment installer, configurer, tuner et sécuriser son instance nginx.
Via Hedi
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>
Depuis Android 4.4, Google a ajouté une IP virtuelle lorsque l'on partage notre connexion (thethering). Ceci permet aux FAI de savoir si l'on utiliser "normalement" le téléphone ou si l'on partage sa connexion.
En l'occurrence, ceux-ce ne se gênent pas pour brider la vitesse de téléchargement de la connexion partagé, voire de bloquer les échanges purement et simplement.
Voici une petite manipulation à exécuter depuis adb shell permettant de supprimer ce marquage et empêcher votre FAI de savoir que vous venez de partager la connexion internet de votre mobile via votre PC :
settings put global tether_dun_required 0
Via Cifiste.
Je regarderai cela plus tard !
From a river
Un tuning de conf de disque SSD pour PC portable (je viens d'apprendre à quoi servait le discard).
À ne jamais utiliser sur un serveur !
Un article expliquant le tuning sur Jetty. La partie touchang au tuning de la couche TCP/IP du Linux sous-jacent est très instructive
Comme vous avez pu le constater, je me documente un peu sur le tuning JVM / MySQL / Linux en ce moment.
L'idée étant de faire simplement des choses simples. Cette page est assez complète et couvre bien les spectres I/O, memory usages, garbage collector, OS.
Un PDF à lire lorsque l'on configure une base MySQL derrière un driver Java et HikariCP en pool de connexions.
Plein d'articles sur le sujet. Cool j'en avais besoin :D
Des éléments de Firefox à changer dans le about:config
.
Et ce lien vers le même site qui parle aussi des changements apportés par Java 8 au niveau de la JVM.
This post is the second in a series. While I have worked for about three years professionally in the realm of security and feel that I now...