Choisissez votre langue
Formation analyse des performances Rust
+ de 400 000 professionnels sur la plateforme
Exclusif aux entreprises

Formation analyse des performances Rust

Maîtrisez les outils, les techniques et les modèles mentaux nécessaires pour analyser et optimiser les performances de serveurs écrits en Rust. Ce cours vous emmène du modèle de propriété de Rust et des mécanismes internes du runtime asynchrone jusqu'au profilage de niveau production, au réglage des E/S et à la planification de capacité. Si vous écrivez des logiciels serveur et avez besoin de gains de performance mesurables et défendables, ce cours est fait pour vous.

Dedika pour les apprenants

Ce que votre équipe va maîtriser:

Vous construirez un workflow rigoureux d'ingénierie des performances couvrant le profilage CPU avec perf et les flamegraphs, le profilage du tas avec heaptrack, et le tracing distribué avec la crate tracing et OpenTelemetry. Vous apprendrez comment fonctionne l'ordonnanceur de vol de tâches de Tokio, comment paramétrer les options de socket TCP, et comment appliquer les techniques d'E/S sans copie pour réduire la charge CPU. Le cours aborde la disposition en mémoire, les allocateurs personnalisés, la vectorisation SIMD, et les drapeaux du compilateur, notamment LTO et PGO. Vous évaluerez les bibliothèques de sérialisation, profilerez les internes d'Axum et Hyper, et paramétrerez les pools de connexions de base de données avec sqlx. À la fin, vous serez en mesure d'identifier les goulots d'étranglement de manière systématique, de mettre en œuvre des optimisations ciblées et de prévenir les régressions via des barrières de performance automatisées dans le CI.

Comment votre équipe apprend de façon pratique Formation analyse des performances Rust

Comment votre équipe s’exerce Formation analyse des performances Rust

Des professionnels de ces entreprises se forment sur Dedika

ActemiumFR
Nunner LogisticsNL
GT Constructora GeotécnicaCR
Sydel StarBR
Metrô de São PauloBR
Aguas AndinasCL
DSMIN
MeridianbetRS
CDHCN

Contenu du cours

8 Chapitres • 38 LeçonsDurée entre 4 et 360 heures (vous décidez)

Chapitre 1Voir les détails

Fondamentaux de Rust pour les programmeurs système

  • Leçon 1 • Gestion des erreurs et flux de contrôle

    Enseigne Result, Option et l'opérateur ? pour une propagation explicite des erreurs. Relie une gestion fiable des erreurs au comportement observable du serveur sous charge.

  • Leçon 2 • Types, traits et génériques

    Présente le système de types de Rust, le polymorphisme basé sur les traits et la monomorphisation. Montre comment les abstractions à coût zéro sont réalisées à la compilation.

  • Leçon 3 • Possession, emprunt et durées de vie

    Couvre le modèle mémoire central de Rust : transfert de possession, emprunts partagés vs. exclusifs et annotations de durée de vie. Établit les garanties de sécurité qui sous-tendent tout le travail de performance ultérieur.

  • Leçon 4 • Cargo, crates et le système de construction

    Explique la résolution des dépendances, les indicateurs de fonctionnalité et les profils de construction de Cargo. Prépare les étudiants à configurer des versions optimisées pour la mesure de la performance.

Chapitre 2Voir les détails

Primitives de concurrence et Rust asynchrone

  • Leçon 1 • Threads et concurrence à état partagé

    Couvre le lancement de threads, Arc, Mutex et RwLock pour un état partagé sûr. Établit le modèle de concurrence de base avant d'introduire les abstractions asynchrones.

  • Leçon 2 • Fonctionnement interne de l'exécuteur Tokio

    Examine l'ordonnanceur de vol de travail de Tokio, le lancement de tâches et le pilote d'E/S. Fournit les connaissances nécessaires de l'exécuteur pour interpréter les données de profilage des serveurs asynchrones.

  • Leçon 3 • Passage de messages avec les canaux

    Enseigne mpsc et les canaux limités comme alternative à l'état partagé. Relie les choix de conception des canaux aux compromis entre latence et débit dans les pipelines serveur.

  • Leçon 4 • Schémas de synchronisation sous charge

    Analyse la contention sur les verrous et les canaux à haute concurrence et introduit des alternatives sans verrou. Prépare directement les étudiants à identifier les goulots d'étranglement de synchronisation.

  • Leçon 5 • Async/Await et le trait Future

    Explique comment les Futures sont interrogés, comment les fonctions asynchrones sont désucrées et comment les exécuteurs pilotent l'achèvement. Construit le modèle mental nécessaire pour diagnostiquer les problèmes de performance asynchrones.

Chapitre 3Voir les détails

Disposition mémoire et mécanismes d'allocation internes

  • Leçon 1 • Allocation sur la pile vs. sur le tas

    Compare les coûts d'allocation sur la pile et sur le tas et explique quand chacun se produit en Rust. Ancre le travail de profilage ultérieur dans des mécanismes d'allocation concrets.

  • Leçon 2 • Collections et schémas d'allocation

    Analyse les stratégies de croissance de Vec, HashMap et String et leurs implications en matière d'allocation. Enseigne les techniques de pré-allocation et de mise en pool pour réduire les pauses équivalentes au GC.

  • Leçon 3 • Disposition des structures et remplissage

    Enseigne l'ordre des champs, les règles d'alignement et les attributs repr qui contrôlent la disposition des structures. Montre comment les choix de disposition affectent l'utilisation des lignes de cache et la préparation au SIMD.

  • Leçon 4 • Allocateurs personnalisés et jemalloc

    Présente le trait GlobalAlloc et démontre l'échange vers jemalloc ou mimalloc. Relie le choix de l'allocateur à des améliorations mesurables de la latence dans les charges de travail serveur.

Chapitre 4Voir les détails

Outils de profilage et méthodologie de mesure

  • Leçon 1 • Évaluation comparative avec Criterion

    Couvre l'évaluation comparative statistique avec Criterion : configuration, mesure et détection de régression. Établit la discipline de mesure de base requise avant toute optimisation.

  • Leçon 2 • Collecte de métriques et tableaux de bord

    Couvre les types de métriques compteur, jauge et histogramme en utilisant la crate metrics et l'exportation Prometheus. Permet une visibilité continue de la performance dans des environnements proches de la production.

  • Leçon 3 • Profilage CPU avec perf et les flamegraphs

    Enseigne le profilage CPU par échantillonnage avec perf et la visualisation par flamegraph. Relie l'identification des fonctions chaudes à des décisions d'optimisation ciblées.

  • Leçon 4 • Profilage du tas et détection de fuites

    Utilise heaptrack et Valgrind Massif pour suivre la fréquence d'allocation et la mémoire maximale. Identifie les points chauds d'allocation qui dégradent le débit du serveur sous charge soutenue.

  • Leçon 5 • Tracing distribué avec la crate tracing

    Intègre la crate tracing pour une instrumentation structurée et adaptée à l'asynchrone des requêtes serveur. Relie le profilage par fonction à l'analyse de latence de bout en bout à travers les limites de service.

Chapitre 5Voir les détails

Performance d'E/S et optimisation réseau

  • Leçon 1 • Coût des appels système et mise en tampon

    Quantifie le coût des appels système read/write et démontre les stratégies d'E/S tamponnées. Établit pourquoi la minimisation de la fréquence des appels système est essentielle pour les serveurs à haut débit.

  • Leçon 2 • Surcharge de performance TLS

    Analyse le coût de la négociation TLS, la reprise de session et la sélection de suites de chiffrement avec rustls. Quantifie l'impact sur la performance du chiffrement et identifie les stratégies d'atténuation.

  • Leçon 3 • E/S asynchrones avec Tokio et io_uring

    Compare les E/S asynchrones basées sur epoll avec les files de soumission io_uring pour réduire le coût des appels système. Montre comment sélectionner et configurer le backend d'E/S pour les charges de travail cibles.

  • Leçon 4 • Techniques de copie zéro

    Enseigne le partage de tampons basé sur sendfile, splice et Bytes pour éliminer les copies de données inutiles. Réduit directement l'utilisation du CPU et la bande passante mémoire dans les charges de travail de service de fichiers et de proxy.

  • Leçon 5 • Réglage TCP et gestion des connexions

    Couvre les options de socket, le pooling de connexions et la configuration du keep-alive pour les sockets serveur. Relie le réglage au niveau TCP à des réductions observables de la latence d'établissement de connexion.

Chapitre 6Voir les détails

Techniques d'optimisation du CPU et du compilateur

  • Leçon 1 • Efficacité du cache et localité des données

    Enseigne la connaissance de la hiérarchie du cache, le préchargement et la disposition des structures de données pour un accès respectueux du cache. Démontre des gains de débit mesurables grâce à une meilleure localité spatiale et temporelle.

  • Leçon 2 • SIMD et vectorisation en Rust

    Introduces portable SIMD via std::simd and target-specific intrinsics for data-parallel operations. Applies vectorization to parsing, hashing, and serialization hot paths.

  • Leçon 3 • Indicateurs d'optimisation du compilateur et LTO

    Explique les paramètres opt-level, codegen-units et les optimisations au moment de la liaison dans les profils Cargo. Montre comment chaque indicateur affecte la taille du binaire, le temps de compilation et la performance à l'exécution.

  • Leçon 4 • Inlining, dévirtualisation et PGO

    Contrôle l'inlining avec des attributs, élimine la répartition dynamique et applique l'optimisation guidée par profilage. Démontre comment chaque technique réduit le nombre d'instructions dans les boucles serveur serrées.

  • Leçon 5 • Prédiction de branchement et indices de vraisemblance

    Analyse comment les mauvaises prédictions de branchement dégradent le débit et comment restructurer le code pour aider le prédicteur. Relie les compteurs perf de mauvaises prédictions de branchement à des schémas de code spécifiques.

Chapitre 7Voir les détails

Fonctionnement interne et optimisation du framework serveur

  • Leçon 1 • Test de charge et planification de capacité

    Utilise wrk, drill et Grafana k6 pour générer de la charge et identifier les points de saturation. Traduit les résultats des tests de charge en décisions de planification de capacité et en priorités d'optimisation.

  • Leçon 2 • Performance du routeur et des extracteurs d'Axum

    Profile l'arbre de routage d'Axum, la chaîne d'extracteurs et la surcharge d'injection d'état. Enseigne des schémas pour minimiser les allocations par requête et le calcul des extracteurs.

  • Leçon 3 • Fonctionnement interne du pipeline Hyper et HTTP/1.1

    Examine le cycle de vie des connexions Hyper, l'analyse des requêtes et les chemins d'écriture des réponses. Identifie la surcharge au niveau du framework qui peut être réduite par la configuration et un intergiciel personnalisé.

  • Leçon 4 • Réglage de la sérialisation et de la désérialisation

    Évalue les performances de serde_json, simd-json et rkyv pour les charges utiles des requêtes et des réponses. Sélectionne la stratégie de sérialisation appropriée en fonction de la taille de la charge utile et des exigences de latence.

  • Leçon 5 • Multiplexage HTTP/2 et contrôle de flux

    Couvre le multiplexage des flux HTTP/2, les fenêtres de contrôle de flux et la compression d'en-tête dans Hyper. Montre comment régler ces paramètres pour les serveurs API à haute concurrence.

Chapitre 8Voir les détails

Analyse avancée et optimisation de la production

  • Leçon 1 • Réglage des requêtes et des pools de connexions de base de données

    Analyse l'exécution des requêtes sqlx et diesel, le dimensionnement du pool de connexions et la mise en cache des instructions préparées. Réduit les pics de latence induits par la base de données qui dominent le temps de réponse du serveur.

  • Leçon 2 • Stratégies de mise en cache pour la performance du serveur

    Implémente des caches LRU en processus et des caches distribués pour réduire les calculs redondants et les E/S. Quantifie l'impact du taux de succès du cache sur le débit et la latence de queue.

  • Leçon 3 • Test de régression de performance dans le CI

    Intègre les benchmarks Criterion et les tests de charge dans les pipelines CI avec des barrières de régression automatisées. Empêche la dégradation des performances d'atteindre la production grâce à un contrôle systématique.

  • Leçon 4 • Compromis architecturaux et stratégie d'optimisation

    Cadre l'optimisation des performances comme une décision économique basée sur les données de profilage et les contraintes métier. Apprend aux étudiants à prioriser les changements en fonction de l'impact, du risque et du coût de mise en œuvre.

  • Leçon 5 • Profilage continu en production

    Déploie des profileurs par échantillonnage toujours actifs comme Pyroscope aux côtés des serveurs en cours d'exécution. Permet la détection des régressions de performance introduites par les modifications de code dans des environnements en direct.

Certification

Votre certificat valide de réussite

Ce cours est fait pour vous :

  • Ingénieur backend : souhaite dépasser le code fonctionnel pour se consacrer à un travail de performance mesurable.

  • Programmeur système : passe du C ou C++ et explore l'écosystème d'outils de performance de Rust.

  • Ingénieur fiabilité des sites : doit diagnostiquer les régressions de latence dans des services de production basés sur Rust.

  • Ingénieur plateforme : responsable de l'optimisation de l'efficacité d'une infrastructure serveur à forte charge et aux ressources contraintes.

  • Rustacé amateur : construit des projets personnels sérieux et prêt à apprendre des techniques d'optimisation de niveau professionnel.

  • Responsable technique : doit établir des normes de performance et une culture de révision au sein d'une équipe axée sur Rust.

Cours associés

FAQ

Qui est Dedika ?

Le certificat est-il valable en France ?

Les cours sont-ils gratuits ?

Quelle est la charge de travail des cours ?

Comment sont les cours ?

Comment fonctionnent les cours ?

Quelle est la durée des cours ?

Quel est le coût ou le prix des cours ?

Qu'est-ce qu'un cours EAD ou en ligne et comment ça marche ?

Cours PDF