You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
// Avant optimisationfnrender_list(items:&[Item]){for item in items {render_item(item);// Appelé 10,000 fois}}// Après optimisationfnrender_list(items:&[Item]){// Virtual scrolling : ne rendre que les items visibleslet visible_range = calculate_visible_range();for item in&items[visible_range]{render_item(item);// Seulement ~20 items rendus}}
use tracing_chrome::ChromeLayerBuilder;use tracing_subscriber::prelude::*;fnsetup_chrome_tracing(){let(chrome_layer, guard) = ChromeLayerBuilder::new().file("trace.json").build();
tracing_subscriber::registry().with(chrome_layer).init();// Le guard doit rester en vie pendant l'exécution
std::mem::forget(guard);}
Visualiser dans Chrome
Ouvrir chrome://tracing
Charger trace.json
Analyser la timeline
Résumé
cargo-flamegraph : Outil standard pour générer des flamegraphs
Interprétation : Largeur = temps passé, hauteur = call stack
Optimisation : Cibler les fonctions les plus larges
Chrome tracing : Alternative avec timeline interactive