Turbopack has been eating RAM since it launched. Dozens of GitHub issues, developers reverting to next dev --webpack as a workaround, and reports of 21.5 GB dev server memory on Vercel’s own dashboard. Next.js 16.3, announced June 29, addresses this directly: memory usage drops up to 90% with no configuration changes. It also ships persistent build cache for CI and an experimental Rust React Compiler. Here is what changed and how to take advantage of it.
Memory Eviction: Turbopack Stops Hoarding RAM
Turbopack’s core design caches everything to avoid recompiling unchanged files. That trade-off — memory for speed — is the right call for incremental compilation. But it caused unbounded memory growth in long dev sessions. Developers on M-series Macs were losing 8-14 GB to non-reclaimable MAP_JIT allocations. Turbopack in v16.2 was using 7 GB for projects where webpack used 3 GB. The GitHub issue tracker has dozens of threads documenting this.
In 16.3, Turbopack can evict cached results from memory to the file system. Routes you are not actively working on get moved to disk and reclaimed. Vercel measured the difference on their own production sites after compiling 50 routes:
- vercel.com dashboard: 21.5 GB → 2 GB (~90% reduction)
- nextjs.org: 4,600 MB → 840 MB (~82% reduction)
Memory eviction and the file system cache it depends on are both enabled by default in 16.3. No config changes required. If you need to disable eviction while debugging:
// next.config.ts
const nextConfig = {
experimental: {
turbopackMemoryEviction: false, // default: 'full'
},
};
The reduction percentage varies with route graph size and session length. Larger, longer sessions see the biggest gains.
Persistent Build Cache: CI Pipelines Get Faster
File system caching has accelerated next dev since the 16.1 release. After months of hardening on Vercel’s production sites, the same cache now extends to next build. Turbopack reads previously computed results from disk and only recompiles what changed. The speedups vary by how much the codebase changed between runs:
- nextjs.org: 21s → 9.2s = 2.3x faster
- vercel.com/home: 66s → 46s = 1.4x faster
- vercel.com/geist: 30s → 5.5s = 5.5x faster
Enable it with one flag:
// next.config.ts
const nextConfig = {
experimental: {
turbopackFileSystemCacheForBuild: true,
},
};
For CI, cache the .next directory between runs. When Turbopack starts a build and finds the cache, it reads from disk before recompiling. Content-heavy sites with stable component trees see the largest gains since most of the build output is reusable across runs.
Rust React Compiler: 20–50% Faster Compilation
React Compiler has been stable in Next.js since 16.0, but it ran as a Babel transform. On large apps, Babel becomes a bottleneck — it waits on JS execution resources while Turbopack’s Rust pipeline sits idle. The React team shipped a native Rust port of the compiler, and Vercel integrated it into Turbopack. Early testing on large apps including v0 showed 20–50% compilation wins.
It is experimental. Enable both flags:
// next.config.ts
const nextConfig = {
reactCompiler: true,
experimental: {
turbopackRustReactCompiler: true,
},
};
This only works with Turbopack. The --webpack path is not affected. Run your own benchmarks before treating the 20–50% figure as guaranteed — but on large codebases the directional gain is real and worth testing.
import.meta.glob: Turbopack Gets a Vite Staple
Vite developers have had import.meta.glob for years. Turbopack now supports it. The API imports all modules matching a pattern without hardcoding filenames — the standard pattern for blog posts, MDX pages, product catalogs, or any set of similar files:
// Lazy-load all MDX posts
const posts = import.meta.glob('./posts/*.mdx');
for (const path in posts) {
const post = await posts[path](); // async by default
}
// Import immediately
const posts = import.meta.glob('./posts/*.mdx', { eager: true });
The file watcher is integrated: adding or removing a matching file triggers recompilation in dev. TypeScript types are generated automatically. Multiple patterns, negative patterns, and named imports are all supported. Like the other new features here, this is Turbopack-only.
How to Upgrade
Next.js 16.3 is in Preview. A stable release is close:
npm install next@preview
What you get automatically:
- Memory eviction — 90% reduction in long dev sessions, zero config
- HMR cold start 15%+ faster on complex apps
- CSS HMR fixes in Safari
What requires opt-in:
- Build cache:
turbopackFileSystemCacheForBuild: true - Rust React Compiler:
reactCompiler: true+turbopackRustReactCompiler: true
If you switched back to webpack to escape the memory problems, 16.3 is the version to try Turbopack again. The memory issue is fixed, and the features only available on Turbopack — persistent build cache, Rust React Compiler, import.meta.glob — are worth having. The Instant Navigations and AI Improvements companion posts cover the other major 16.3 changes worth reading.













