[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"article-rust-compiler-speed-wins-july-2026-en":3,"article-related-rust-compiler-speed-wins-july-2026-en":30,"series-research-fddc60df-68a9-44b4-8e0e-79f3985d2b49":73},{"id":4,"slug":5,"title":6,"content":7,"summary":8,"source":9,"source_url":10,"author":11,"image_url":12,"cover_image":12,"category":13,"language":14,"translated_content":11,"related_article_id":15,"keywords":16,"key_takeaways":23,"views":27,"created_at":28,"published_at":29,"topic_cluster_id":11},"fddc60df-68a9-44b4-8e0e-79f3985d2b49","rust-compiler-speed-wins-july-2026-en","Rust compiler speed wins from July 2026","\u003Cp data-speakable=\"summary\">5.59% mean wall-time reduction shows where July 2026 \u003Ca href=\"\u002Ftag\u002Frust\">Rust\u003C\u002Fa> compiler work paid off.\u003C\u002Fp>\u003Cp>This guide is for Rust compiler contributors, performance engineers, and tool authors who want a practical read on the latest speed work in rustc, rustdoc, Clippy, and incremental compilation. After you follow the steps, you will know how to reproduce the measurements, inspect the biggest wins, and spot the kinds of changes that moved wall time by double digits.\u003C\u002Fp>\u003Ch2>Before you start\u003C\u002Fh2>\u003Cul>\u003Cli>A Linux or macOS machine with Rust nightly installed.\u003C\u002Fli>\u003Cli>Rust 1.87+ or a recent nightly toolchain for building rustc.\u003C\u002Fli>\u003Cli>Python 3.10+ for scripts and result inspection.\u003C\u002Fli>\u003Cli>Git installed and access to the Rust compiler repository.\u003C\u002Fli>\u003Cli>rustc-perf checkout, plus permission to run long benchmark jobs.\u003C\u002Fli>\u003Cli>Valgrind tools installed if you want Cachegrind and DHAT profiling.\u003C\u002Fli>\u003Cli>Access to the rustdoc and Clippy performance benchmark data mentioned in the source article.\u003C\u002Fli>\u003C\u002Ful>\u003Ch2>Step 1: Clone the benchmark repos\u003C\u002Fh2>\u003Cp>Your first outcome is a local workspace that can build compiler changes and compare them against performance baselines. The source article discusses rustc-perf measurements, rustdoc benchmarks, and profiling runs, so you need both the compiler and the \u003Ca href=\"\u002Ftag\u002Fbenchmark\">benchmark\u003C\u002Fa> harness available.\u003C\u002Fp>\n\u003Cfigure class=\"my-6\">\u003Cimg src=\"https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1785569563875-w1xs.png\" alt=\"Rust compiler speed wins from July 2026\" class=\"rounded-xl w-full\" loading=\"lazy\" \u002F>\u003C\u002Ffigure>\n\u003Cpre>\u003Ccode>git clone https:\u002F\u002Fgithub.com\u002Frust-lang\u002Frust.git\ngit clone https:\u002F\u002Fgithub.com\u002Frust-lang\u002Frustc-perf.git\ncd rust\nrustup toolchain install nightly\nrustup default nightly\u003C\u002Fcode>\u003C\u002Fpre>\u003Cp>You should see both repositories on disk and a working nightly toolchain when you run \u003Ccode>rustc --version\u003C\u002Fcode>.\u003C\u002Fp>\u003Ch2>Step 2: Run a baseline benchmark suite\u003C\u002Fh2>\u003Cp>The goal here is to capture a before snapshot so later changes have a clear comparison point. The article’s headline result, 5.59% mean wall-time reduction, only matters because it is measured against a stable baseline across many benchmarks.\u003C\u002Fp>\n\u003Cfigure class=\"my-6\">\u003Cimg src=\"https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1785569560648-jy8e.png\" alt=\"Rust compiler speed wins from July 2026\" class=\"rounded-xl w-full\" loading=\"lazy\" \u002F>\u003C\u002Ffigure>\n\u003Cpre>\u003Ccode>cd ..\u002Frustc-perf\ncargo run --release -- bench local ..\u002Frust\u003C\u002Fcode>\u003C\u002Fpre>\u003Cp>You should see benchmark output and result artifacts that can be compared with later runs. If your setup is correct, the suite completes without missing toolchain errors or failed harness steps.\u003C\u002Fp>\u003Ch2>Step 3: Measure rustdoc improvements\u003C\u002Fh2>\u003Cp>This step gives you the clearest example of a large subsystem win. The article reports a 37.92% mean wall-time reduction in rustdoc and a 28% drop across all rustdoc benchmarks after combining multiple changes: less work when processing impls, better PGO training, and a cheaper sort key for impl ordering.\u003C\u002Fp>\u003Cpre>\u003Ccode># Example workflow for a rustdoc-focused run\ncargo run --release -- bench local ..\u002Frust --include rustdoc\u003C\u002Fcode>\u003C\u002Fpre>\u003Cp>You should see rustdoc benchmarks move noticeably faster than the baseline, and in a strong run the mean wall time should trend down by double digits. If you are checking instruction counts too, you should also see reductions from the smaller sort key and reduced impl processing.\u003C\u002Fp>\u003Ch2>Step 4: Profile Clippy dispatch overhead\u003C\u002Fh2>\u003Cp>The outcome of this step is a profile that shows where virtual dispatch and no-op lint calls are burning time. The source explains that Clippy traverses the AST and HIR and calls many visitor methods for every lint, even when most methods are empty. The winning fix was to combine passes so empty calls are skipped.\u003C\u002Fp>\u003Cpre>\u003Ccode>valgrind --tool=cachegrind cargo run -p clippy-driver -- test.rs\nvalgrind --tool=dhat cargo run -p clippy-driver -- test.rs\u003C\u002Fcode>\u003C\u002Fpre>\u003Cp>You should see high call counts and, in some cases, large branch-misprediction or copy costs. On real examples, the article says the optimized approach reduced Clippy runtime by 10-30%, with branch mispredictions down 20-80% and one stress test down 97%.\u003C\u002Fp>\u003Ch2>Step 5: Shrink hot data structures\u003C\u002Fh2>\u003Cp>This step is about turning cache pressure into measurable wins. The article shows several examples: AST expression nodes were reduced from 72 bytes to 64 bytes, which fits a cache line, and that change cut wall time by more than 10% on some AST-heavy benchmarks while lowering cache misses by as much as 29%.\u003C\u002Fp>\u003Cpre>\u003Ccode>\u002F\u002F Example pattern: remove or defer rarely used fields\nstruct Expr {\n    \u002F\u002F smaller hot-path representation\n    kind: ExprKind,\n    span: Span,\n    \u002F\u002F moved out or stored elsewhere\n}\u003C\u002Fcode>\u003C\u002Fpre>\u003Cp>You should see lower cache-miss rates and faster wall time on workloads that create lots of AST nodes. If your data structure was above 128 bytes, you may also avoid memcpy-based moves in LLVM and get an extra speedup like the 40% improvement reported for the worst new-solver crates.\u003C\u002Fp>\u003Ch2>Step 6: Re-run and compare the result set\u003C\u002Fh2>\u003Cp>Your final outcome is a clear before-and-after report that separates subsystem wins from overall compiler progress. The article’s broader result was a 5.59% mean wall-time reduction, or 2.90% if you exclude the huge rustdoc gains, so your comparison should call out both the aggregate and the local changes.\u003C\u002Fp>\u003Cpre>\u003Ccode>cargo run --release -- compare baseline.json latest.json\ncargo run --release -- summarize latest.json\u003C\u002Fcode>\u003C\u002Fpre>\u003Cp>You should see a diff that lists improved benchmarks, regressions, and any noisy results that need a second look. If your numbers line up with the article’s pattern, most gains will come from a small number of targeted changes rather than one giant rewrite.\u003C\u002Fp>\u003Ctable>\u003Cthead>\u003Ctr>\u003Cth>Metric\u003C\u002Fth>\u003Cth>Before\u002FBaseline\u003C\u002Fth>\u003Cth>After\u002FResult\u003C\u002Fth>\u003C\u002Ftr>\u003C\u002Fthead>\u003Ctbody>\u003Ctr>\u003Ctd>Mean wall time\u003C\u002Ftd>\u003Ctd>Baseline period\u003C\u002Ftd>\u003Ctd>5.59% reduction\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd>rustdoc mean wall time\u003C\u002Ftd>\u003Ctd>Baseline period\u003C\u002Ftd>\u003Ctd>37.92% reduction\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd>rustdoc mean wall time without recent changes\u003C\u002Ftd>\u003Ctd>Baseline period\u003C\u002Ftd>\u003Ctd>2.90% reduction\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd>Some rustdoc benchmarks\u003C\u002Ftd>\u003Ctd>Baseline period\u003C\u002Ftd>\u003Ctd>28% reduction\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd>Clippy runtime\u003C\u002Ftd>\u003Ctd>Baseline period\u003C\u002Ftd>\u003Ctd>10-30% reduction\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd>Worst new-solver crates\u003C\u002Ftd>\u003Ctd>Baseline period\u003C\u002Ftd>\u003Ctd>40% reduction\u003C\u002Ftd>\u003C\u002Ftr>\u003C\u002Ftbody>\u003C\u002Ftable>\u003Ch2>Common mistakes\u003C\u002Fh2>\u003Cul>\u003Cli>Using a noisy benchmark run as proof. Fix: rerun the suite and check whether the change survives multiple measurements.\u003C\u002Fli>\u003Cli>Optimizing one hot path without checking data layout. Fix: inspect struct sizes and cache behavior, then verify whether shrinking a type crosses the 128-byte memcpy threshold.\u003C\u002Fli>\u003Cli>Trusting automated regression reports alone. Fix: add human review for triage so noisy benchmarks and insignificant changes do not drown out real regressions.\u003C\u002Fli>\u003C\u002Ful>\u003Ch2>What's next\u003C\u002Fh2>\u003Cp>If you want to go deeper, follow the rustc-perf dashboard, read the linked PRs from the article, and study how rustdoc PGO, Clippy pass fusion, and AST size reductions each translated into measurable wins.\u003C\u002Fp>","July 2026 Rust compiler work cut mean wall time 5.59%, led by rustdoc and Clippy.","nnethercote.github.io","https:\u002F\u002Fnnethercote.github.io\u002F2026\u002F07\u002F31\u002Fhow-to-speed-up-the-rust-compiler-in-july-2026.html",null,"https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1785569563875-w1xs.png","research","en","6fa6185b-fcd2-4dd5-aacc-f3b929c23f9b",[17,18,19,20,21,22],"rustc-perf","rustdoc","clippy","incremental compilation","cachegrind","dhat",[24,25,26],"Rust compiler speed work in July 2026 delivered a 5.59% mean wall-time reduction overall.","rustdoc drove much of the gain with a 37.92% mean wall-time reduction and a 28% combined drop across its benchmarks.","Clippy, incremental compilation, and AST layout changes all showed that smaller hot paths and fewer dispatches can produce large wins.",2,"2026-08-01T07:32:21.551218+00:00","2026-08-01T07:32:21.543+00:00",{"tags":31,"relatedLang":32,"relatedPosts":36},[],{"id":15,"slug":33,"title":34,"language":35},"rust-compiler-speed-wins-july-2026-zh","Rust 編譯器 2026 7 月速度成果實作指南","zh",[37,43,49,55,61,67],{"id":38,"slug":39,"title":40,"cover_image":41,"image_url":41,"created_at":42,"category":13},"3183c9c7-4249-450c-9a5b-8938785357fe","stablecoins-hit-308b-as-svbs-shock-echoes-en","Stablecoins Hit $308B as SVB’s Shock Still Echoes","https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1785585774053-zcn7.png","2026-08-01T12:02:28.552018+00:00",{"id":44,"slug":45,"title":46,"cover_image":47,"image_url":47,"created_at":48,"category":13},"1d80b13f-dbff-4c14-b19f-fb0fdf8ea4b8","build-small-language-model-deepmind-en","Build a Small Language Model with DeepMind","https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1785522764710-tchg.png","2026-07-31T18:32:18.121005+00:00",{"id":50,"slug":51,"title":52,"cover_image":53,"image_url":53,"created_at":54,"category":13},"00655d82-4035-4ac8-8c48-ed070e82f4a5","pac-man-humanoid-dodgeball-safety-en","PAC-MAN makes humanoid dodgeball safer","https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1785481389808-eysc.png","2026-07-31T07:02:32.928022+00:00",{"id":56,"slug":57,"title":58,"cover_image":59,"image_url":59,"created_at":60,"category":13},"2844c399-e2ad-4cf0-b888-fd480d6d56ed","retoken-one-token-visual-retrieval-en","ReToken uses one learned token to fetch visual context","https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1785479567286-85y5.png","2026-07-31T06:32:24.643191+00:00",{"id":62,"slug":63,"title":64,"cover_image":65,"image_url":65,"created_at":66,"category":13},"660b1f2e-8988-4d2e-9429-b0c7accd3b6a","ml-trace-seiberg-dualities-en","ML helps trace Seiberg dualities","https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1785477772867-xtol.png","2026-07-31T06:02:28.714509+00:00",{"id":68,"slug":69,"title":70,"cover_image":71,"image_url":71,"created_at":72,"category":13},"8e53848b-d163-4335-a8e4-29694e85bbb3","fruitfly-inspired-regression-without-heavy-models-en","Fruitfly-Inspired Regression Without Heavy Models","https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1785394974203-76p6.png","2026-07-30T07:02:27.641563+00:00",[74,79,84,89,94,99,104,109,114,119],{"id":75,"slug":76,"title":77,"created_at":78},"a2715e72-1fe8-41b3-abb1-d0cf1f710189","ai-predictions-2026-big-changes-en","AI Predictions for 2026: Brace for Big Changes","2026-03-26T01:25:07.788356+00:00",{"id":80,"slug":81,"title":82,"created_at":83},"8404bd7b-4c2f-4109-9ec4-baf29d88af2b","ml-papers-of-the-week-github-research-desk-en","ML Papers of the Week Turns GitHub Into a Research Desk","2026-03-27T01:11:39.480259+00:00",{"id":85,"slug":86,"title":87,"created_at":88},"87897a94-8065-4464-a016-1f23e89e17cc","ai-ml-conferences-to-watch-in-2026-en","AI\u002FML Conferences to Watch in 2026","2026-03-27T01:51:54.184108+00:00",{"id":90,"slug":91,"title":92,"created_at":93},"6f1987cf-25f3-47a4-b3e6-db0997695be8","openclaw-agents-manipulated-self-sabotage-en","OpenClaw Agents Can Be Manipulated Into Failure","2026-03-28T03:03:18.899465+00:00",{"id":95,"slug":96,"title":97,"created_at":98},"a53571ad-735a-4178-9f93-cb09b699d99c","vega-driving-language-instructions-en","Vega: Driving with Natural Language Instructions","2026-03-28T14:54:04.698882+00:00",{"id":100,"slug":101,"title":102,"created_at":103},"a34581d6-f36e-46da-88bb-582fb3e7425c","personalizing-autonomous-driving-styles-en","Drive My Way: Personalizing Autonomous Driving Styles","2026-03-28T14:54:26.148181+00:00",{"id":105,"slug":106,"title":107,"created_at":108},"2bc1ad7f-26ce-4f02-9885-803b35fd229d","training-knowledge-bases-writeback-rag-en","Training Knowledge Bases with WriteBack-RAG","2026-03-28T14:54:45.643433+00:00",{"id":110,"slug":111,"title":112,"created_at":113},"71adc507-3c54-4605-bbe2-c966acd6187e","packforcing-long-video-generation-en","PackForcing: Efficient Long-Video Generation Method","2026-03-28T14:55:02.646943+00:00",{"id":115,"slug":116,"title":117,"created_at":118},"675942ef-b9ec-4c5f-a997-381250b6eacb","pixelsmile-facial-expression-editing-en","PixelSmile Framework Enhances Facial Expression Editing","2026-03-28T14:55:20.633463+00:00",{"id":120,"slug":121,"title":122,"created_at":123},"6954fa2b-8b66-4839-884b-e46f89fa1bc3","adaptive-block-scaled-data-types-en","IF4: Smarter 4-Bit Quantization That Adapts to Your Data","2026-03-31T06:00:36.65963+00:00"]