Skip to content

Conversation

@xusd320
Copy link

@xusd320 xusd320 commented Dec 11, 2025

utooland/mimalloc@88e710e
utooland/mimalloc_rust@fed2a96

It improves performance by 100%

dlmalloc
image

mimalloc
image

@gemini-code-assist
Copy link

Summary of Changes

Hello @xusd320, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed!

This pull request implements a critical performance optimization for Turbopack, focusing on its WebAssembly (WASM) compilation targets. By integrating a specialized, forked version of the mimalloc memory allocator, the change aims to dramatically enhance the efficiency of memory management. This strategic shift is designed to yield substantial speed improvements, making WASM-based operations within Turbopack considerably faster.

Highlights

  • Allocator Switch for WASM: The pull request switches the memory allocator used for WebAssembly (WASM) targets from the default system allocator (likely dlmalloc) to a forked version of mimalloc. This change is specifically targeted at improving performance in WASM environments.
  • Dependency Migration: The project's dependencies have been updated to remove the mimalloc-rspack and rspack-libmimalloc-sys crates, replacing them with a direct dependency on a specific git fork of mimalloc_rust.
  • Performance Improvement: This change is expected to deliver a significant performance boost, with the author claiming up to a 100% improvement, particularly in scenarios involving memory allocation within Turbopack's WASM components.
Using Gemini Code Assist

The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.

Invoking Gemini

You can request assistance from Gemini at any point by creating a comment using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands on the current page.

Feature Command Description
Code Review /gemini review Performs a code review for the current pull request in its current state.
Pull Request Summary /gemini summary Provides a summary of the current pull request in its current state.
Comment @gemini-code-assist Responds in comments when explicitly tagged, both in pull request comments and review comments.
Help /gemini help Displays a list of available commands.

Customization

To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/ folder in the base of the repository. Detailed instructions can be found here.

Limitations & Feedback

Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here.

You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension.

Footnotes

  1. Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution.

Copy link

@gemini-code-assist gemini-code-assist bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request switches the memory allocator for Turbopack to a forked version of mimalloc to improve performance on WASM targets. The changes involve updating dependencies in Cargo.toml to point to a specific git commit of a forked mimalloc-rust repository and adjusting the conditional compilation flags in lib.rs to enable mimalloc for WASM.

My review focuses on the dependency management strategy. While the performance gains are significant, using a forked git dependency introduces potential security and maintenance concerns. I've left a comment suggesting to clarify the reasoning for the fork and to consider upstreaming the changes. I've also pointed out some minor formatting issues in the Cargo.toml file.

@xusd320 xusd320 changed the title perf(turbopack): use forked mimalloc on wasm perf(turbo-tasks-malloc): use forked mimalloc on wasm Dec 11, 2025
@xusd320 xusd320 merged commit c88daeb into utoo Dec 12, 2025
14 of 27 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants