zhiwei zhiwei

Why is Mamba Better Than Conda: A Deep Dive for Modern Python Development

Why is Mamba Better Than Conda: A Deep Dive for Modern Python Development

As a seasoned developer who’s wrestled with environment management for years, I’ve often found myself staring at a terminal, waiting. Waiting for Conda to resolve dependencies, waiting for packages to download, waiting for my project setup to finally be ready. It’s a familiar pain point for many, and it’s precisely this shared frustration that has led many to seek alternatives. If you’re asking yourself, "Why is Mamba better than Conda?" you’re not alone. Many of us have reached that same crossroads, looking for a more efficient, faster, and, frankly, less maddening experience. My own journey has been one of continuous optimization, and Mamba has undoubtedly become a cornerstone of that optimization, dramatically reducing the friction in my daily workflow.

At its core, the question of why Mamba is better than Conda boils down to a few key differences in how they approach package management. Conda, while a powerful and widely adopted tool, has some inherent limitations, particularly when dealing with complex dependency graphs or large numbers of packages. Mamba, on the other hand, was designed with speed and efficiency as primary objectives, leveraging a more modern and robust solving mechanism. This doesn't mean Conda is "bad"—far from it. It's been the workhorse for many for a long time. However, as the scale and complexity of our projects grow, the limitations become more apparent, and that’s where Mamba truly shines.

Let’s get right to the heart of it: Mamba offers a significantly faster dependency resolution and package installation experience compared to Conda. This isn't just a minor speed bump; it can be a game-changer for productivity, especially on larger projects or when working with many different environments. So, why is Mamba better than Conda in this crucial aspect? It’s primarily due to its underlying architecture and the technologies it employs. While Conda relies on a SAT solver that can become computationally expensive, Mamba utilizes libsolv, a more sophisticated and efficient dependency solver that originated from the Linux package management world (think RPM). This allows Mamba to handle complex dependency trees with far greater speed and less memory consumption. I’ve personally witnessed environments that would take Conda minutes, sometimes even tens of minutes, to resolve and install packages, now completing in mere seconds with Mamba. It’s a qualitative leap that transforms the development experience from one of waiting to one of doing.

The Core Problem Conda Faces and Mamba Solves

Before diving deeper into Mamba's advantages, it's essential to understand the challenges that often plague Conda users. Conda is designed to manage packages and environments, not just for Python, but for any language. This generality is a strength, but it also introduces complexities in its dependency resolution algorithm. When you install a package with Conda, it needs to consider not only the direct dependencies of that package but also the dependencies of those dependencies, and so on, all while ensuring compatibility with every other package already installed in the environment. This can create a massive combinatorial problem, especially as environments grow and package versions become more numerous.

Consider a scenario where you’re trying to install a new library, say `fancy-plot-library`, which depends on `numpy` version 1.20 or higher, and `pandas` version 1.3 or higher. Meanwhile, another package you already have, `data-analyzer`, requires `numpy` version 1.19 or lower and `pandas` version 1.2 or lower. Conda's SAT solver has to find a combination of versions for `fancy-plot-library`, `numpy`, `pandas`, and `data-analyzer` that satisfies all these constraints simultaneously. If there are many such conflicting requirements, the solver can struggle, leading to long resolution times or, worse, an inability to find a valid solution (often resulting in cryptic error messages).

This is where Mamba enters the picture. Its adoption of libsolv is a fundamental architectural shift. Libsolv is a highly optimized library designed for efficient dependency resolution. It’s used in production in major Linux distributions like SUSE and openSUSE, which have incredibly complex package ecosystems. By leveraging this battle-tested solver, Mamba can process dependency information much faster and more reliably. The result is that Mamba can often resolve complex environments in a fraction of the time it would take Conda. For anyone who’s spent significant time waiting for `conda install` or `conda update` to finish, this speed improvement alone is a compelling reason to switch.

Speed and Performance: The Mamba Difference

Let's talk numbers, because the difference in speed is, frankly, staggering. While exact benchmarks can vary depending on your system, the complexity of your environment, and the specific packages you're installing, the trend is undeniable. Mamba is consistently faster. I’ve seen reported speedups ranging from 2x to 10x, and in some extreme cases, even more. This isn't just about shaving a few seconds off an installation; it’s about transforming the developer experience from one of tedium to one of flow. When you can spin up new project environments, update dependencies, or install new libraries in seconds rather than minutes, your overall productivity sees a significant boost.

Think about the daily workflow of a data scientist or a software engineer. It often involves creating new virtual environments for different projects, installing specific versions of libraries, and updating them as new versions become available. If each of these operations takes several minutes, the cumulative time spent waiting can be substantial. Mamba drastically reduces this overhead. The speed advantage comes from several factors:

Optimized Dependency Solver: As mentioned, libsolv is inherently more efficient than Conda’s SAT solver for the tasks it performs. Parallel Downloading: Mamba can download packages in parallel, significantly speeding up the download phase of an installation. Conda, by default, tends to download packages more sequentially. Faster Metadata Handling: Mamba is designed to work with package metadata more efficiently, which is crucial for quick environment analysis and resolution.

The impact of this speed is not just on initial setup. It’s felt during the entire lifecycle of a project. Need to quickly test a new version of a library? Mamba makes it fast. Facing a dependency conflict? Mamba resolves it faster, often providing clearer error messages that help you pinpoint the issue more quickly. This sustained performance improvement is why many developers, myself included, find it hard to go back to the waiting game that Conda sometimes entails.

Mamba's Enhanced User Experience

Beyond raw speed, Mamba offers a generally improved user experience. This is often a subjective measure, but many users report that Mamba feels more intuitive and responsive. The command-line interface (CLI) is designed to be familiar to Conda users, so switching doesn't require a steep learning curve. You’ll find commands like `mamba create`, `mamba install`, `mamba update`, and `mamba env` that mirror their Conda counterparts. However, the feedback and progress indicators during operations are often more informative and quicker to update.

One area where Mamba truly shines is in its handling of errors and conflicts. While Conda can sometimes present opaque messages when it fails to resolve dependencies, Mamba, powered by libsolv, often provides more detailed and actionable information. This can significantly reduce the debugging time spent trying to figure out *why* an installation failed. Instead of just saying "conflict detected," Mamba might give you a clearer picture of which packages are in contention and the specific version constraints that are causing the problem. This proactive approach to error reporting makes troubleshooting much smoother.

Furthermore, Mamba’s parallel downloading capabilities not only speed up the process but also provide a more dynamic progress bar. You can see multiple downloads happening simultaneously, giving you a better sense of how the installation is progressing. This attention to detail in the user interface contributes to a more fluid and less frustrating experience. It’s the little things, you know? The moments where you don't have to stare blankly at your screen, wondering if your command is even doing anything, are the moments that make a real difference in day-to-day development.

Under the Hood: How Mamba Achieves its Performance

To truly understand why Mamba is better than Conda, it’s beneficial to look under the hood at the architectural choices. Mamba is essentially a re-implementation of Conda’s core functionality but with a different approach to solving dependencies and managing packages. It’s built in C++ for performance-critical components, whereas Conda is primarily Python-based.

The most significant difference lies in the choice of dependency solver. Conda uses a SAT (Satisfiability) solver. SAT solvers are general-purpose tools for finding solutions to boolean satisfiability problems. While powerful, they can become computationally intensive for the complex, large-scale dependency graphs encountered in package management. As the number of packages and their interdependencies grows, the search space for a SAT solver can explode, leading to long resolution times.

Mamba, conversely, leverages libsolv. Libsolv is specifically designed for dependency resolution in package management systems. It's a more specialized and efficient algorithm for this particular problem. It works by building a dependency graph and then using graph-traversal algorithms and constraint propagation to find a consistent set of package versions. This specialized approach allows Mamba to handle massive dependency trees with remarkable speed and efficiency. Think of it like using a purpose-built tool versus a general-purpose one – the purpose-built tool often excels at its specific task.

Another key aspect is Mamba's use of Progressive Indexing. When you create or activate an environment, Mamba builds an index of available packages. This index is structured in a way that allows for very fast lookups and updates. Conda’s metadata handling, while functional, can sometimes be a bottleneck, especially when dealing with channels that have a vast number of packages.

Mamba also excels at parallel operations. As mentioned earlier, it can download multiple packages concurrently, making the installation process much quicker. This is a design choice that Conda has been addressing in recent versions, but Mamba has had this capability built-in and optimized for a longer time.

To illustrate the difference, let’s consider a simplified comparison table:

Feature Conda Mamba Primary Dependency Solver SAT Solver (e.g., Pycosat) libsolv (optimized for package management) Implementation Language Primarily Python C++ for core components, Python bindings Dependency Resolution Speed Can be slow for complex environments Significantly faster, especially for large dependency graphs Package Downloading Generally sequential Parallel downloading for increased speed Error Handling/Messaging Can be cryptic at times Often more detailed and actionable Memory Usage Can be higher during resolution Generally more efficient User Interface/CLI Mature and widely adopted Familiar to Conda users, often more responsive

This table highlights the core technical reasons why Mamba generally outperforms Conda in terms of speed and efficiency. It’s not magic; it’s a result of deliberate architectural choices focused on optimizing the package management workflow.

Mamba's Compatibility and Ecosystem Integration

A crucial question for anyone considering a switch is: "Will Mamba work with my existing Conda environments and channels?" The answer is a resounding yes! Mamba was designed to be a drop-in replacement for Conda in most scenarios. This means that you can use Mamba to manage your existing Conda environments, install packages from Conda channels (like `defaults`, `conda-forge`, etc.), and even use it alongside Conda if needed.

This compatibility is a massive advantage. You don't have to abandon your current setup or rewrite all your environment files. You can simply install Mamba (often via `pip` or by downloading a Miniconda/Anaconda distribution that includes Mamba) and start using `mamba` commands instead of `conda` commands. The syntax is largely identical, making the transition incredibly smooth.

For instance, instead of typing:

conda create -n myenv python=3.9 pandas numpy scipy

You can simply type:

mamba create -n myenv python=3.9 pandas numpy scipy

And you'll likely see the environment created and packages installed much faster.

This compatibility extends to package channels. Mamba can access all the same channels that Conda can. This means that if a package is available on Anaconda.org or a private Conda channel, Mamba can find and install it. This ensures that you don't lose access to the vast repositories of software that the Conda ecosystem provides.

Moreover, Mamba is often distributed as part of newer Anaconda and Miniconda installations, or it can be easily installed into an existing Conda environment. This ease of integration means you can try Mamba without making a permanent commitment to replacing Conda entirely. You can experiment with Mamba for specific tasks or environments and continue to use Conda for others, gradually transitioning as you become more comfortable.

The ability to seamlessly integrate with the existing Conda ecosystem is a testament to the thoughtful design of Mamba. It acknowledges the widespread adoption of Conda and aims to provide a superior experience without forcing users to adopt a completely new paradigm. This approach has been key to its rapid adoption within the developer community.

Installation and Getting Started with Mamba

Switching to Mamba is remarkably straightforward. For many, the simplest way is to install it into an existing Conda environment or as part of a new installation. Here’s how you can typically get started:

Option 1: Installing Mamba into an Existing Conda Environment

If you already have Anaconda or Miniconda installed, you can install Mamba directly into your base environment or any other environment using `pip`:

Open your terminal or Anaconda Prompt. Activate the environment where you want to install Mamba (optional, but recommended for the base environment). Install Mamba using pip: pip install mamba -n conda-forge

Note: While `pip` is common, installing from the `conda-forge` channel via Conda itself is often the most robust way to ensure Mamba is installed correctly and its dependencies are managed within the Conda ecosystem. Here's the preferred method:

conda install mamba -n conda-forge

Once installed, you can start using `mamba` commands in place of `conda` commands.

Option 2: Installing a New Distribution with Mamba Included

Many newer versions of Miniconda and Anaconda distributions now come with Mamba pre-installed or easily installable. If you're setting up a new system, consider downloading the latest installer from the Anaconda or Miniconda websites. During the installation process, or immediately after, you might be prompted about Mamba or can install it using the `conda install` command as described above.

After installation, you can verify that Mamba is available by typing:

mamba --version

This should output the installed Mamba version.

Basic Usage Commands:

Here are some common commands you’ll use, directly analogous to their Conda counterparts:

Create a new environment: mamba create -n myenv python=3.9 pandas numpy Activate an environment: conda activate myenv

(Note: Activation commands typically remain `conda activate` for consistency with shell integration.)

Install packages into an environment: mamba install scikit-learn matplotlib Update packages in an environment: mamba update --all Remove packages from an environment: mamba remove requests List packages in an environment: mamba list Clone an environment: mamba env create -f environment.yml mamba env update -f environment.yml Export environment to a file: conda env export > environment.yml

(Note: Exporting is usually done with `conda` to ensure maximum compatibility, though Mamba can often read these files.)

The transition is as simple as replacing `conda` with `mamba` for most operations. The familiar command structure significantly lowers the barrier to entry, making it easy for any Conda user to experience the benefits of Mamba.

Mamba vs. Conda: When to Choose Which

So, given all this, when would you still choose Conda over Mamba, or vice versa? The question "Why is Mamba better than Conda" often implies Mamba is universally superior, but reality is a bit more nuanced. While Mamba offers significant advantages, Conda still has its place, and understanding the strengths of each can help you make the best choice for your workflow.

Choose Mamba When: Speed is Paramount: If you find yourself waiting excessively for dependency resolution or package installations, Mamba is the clear winner. This is especially true for large projects, complex dependency graphs, or frequent environment modifications. Working with Large or Complex Environments: Mamba’s efficient solver handles many packages and intricate relationships much better, reducing errors and timeouts. You Value Responsive Feedback: The faster, more detailed progress indicators and error messages in Mamba contribute to a smoother user experience. You Want a Modern, Efficient Tool: Mamba represents a more contemporary approach to package management, built on robust C++ components and optimized algorithms. You're Starting New Projects: For any new project, Mamba is an excellent default choice to set up your development environment efficiently from the start. Consider Conda When: Maximum Compatibility is Essential: While Mamba is highly compatible, Conda remains the foundational tool. In some very niche or legacy environments, or when interacting with specific tools that are only tested with Conda, you might stick with Conda. However, this is becoming increasingly rare. You're Not Experiencing Significant Speed Issues: If your current Conda workflow is fast enough for your needs, and you don't encounter major resolution problems, the impetus to switch might be lower. Learning Curve Concerns (Minor): Although Mamba's CLI is very similar, if you or your team are entirely new to package managers and finding even Conda's basic commands challenging, sticking with the more widely documented Conda might feel safer initially. But again, the learning curve for Mamba is minimal. Specific Tool Integration: Very rarely, a specific tool might have a dependency or integration that's only been tested and confirmed to work with Conda. This is uncommon but worth noting.

In my personal experience, the speed and efficiency gains from Mamba are so significant that it has become my go-to tool for virtually all my Python development. The reduction in waiting time and the clearer error messages have dramatically improved my productivity. For most modern development workflows, especially in data science, machine learning, and web development, Mamba is the superior choice. The question of "why is Mamba better than Conda" increasingly leans towards Mamba being the preferred option for almost everyone.

Mambaforge: A Dedicated Distribution for Mamba Users

For those who want to fully embrace Mamba as their primary package manager from the get-go, Mambaforge is an excellent option. Mambaforge is a minimal installer for Conda that includes Mamba as the default package manager. It’s essentially a Conda distribution but configured to use Mamba for all its operations.

This means that when you install Mambaforge, you get:

A small, fast installer. Mamba as the default command-line tool for package and environment management. All the standard Conda functionality, but powered by Mamba's speed and efficiency.

If you're setting up a new machine or embarking on a new project and want the fastest, most efficient package management experience possible, Mambaforge is highly recommended. It streamlines the setup process and ensures that you're benefiting from Mamba's advantages from day one. You won't have to install Mamba separately or think about switching commands; it's all configured out of the box.

To install Mambaforge, you would typically download the installer script for your operating system from the official Mambaforge GitHub repository or associated sources and run it from your terminal. The installation process is similar to that of Miniconda or Anaconda, and once complete, you can start using `mamba` commands immediately.

This dedicated distribution highlights the confidence in Mamba’s capabilities and its suitability as a primary package manager, offering a streamlined path for users who want to prioritize speed and efficiency in their development workflow.

Frequently Asked Questions About Mamba vs. Conda

To further clarify the differences and benefits, let's address some common questions:

Q1: Is Mamba a complete replacement for Conda?

Answer: Yes, in most practical senses, Mamba is a complete replacement for Conda. It implements the core functionalities of Conda, including environment creation, package installation, removal, updating, and activation. The command-line interface is designed to be identical, so you can simply substitute `mamba` for `conda` in your commands. Mamba’s underlying architecture, particularly its use of libsolv for dependency resolution and its parallel downloading capabilities, makes it significantly faster and often more reliable than Conda for these tasks. This means you get the same end results – managed environments and installed packages – but with a much-improved performance profile. The vast majority of users who switch find that Mamba handles all their needs, from simple Python scripts to complex data science projects involving hundreds of dependencies.

It’s important to note that Mamba is built upon the infrastructure that Conda created. It leverages Conda's package formats and channels. So, while it's a different implementation, it plays harmoniously within the broader Conda ecosystem. Think of it as a highly optimized engine for a car that already has a well-established chassis and wheels. You get better performance without needing a completely new vehicle.

The only potential exceptions might arise in highly specialized or legacy scenarios where a particular tool or script has been explicitly hardcoded or tested only against the `conda` executable itself. In such rare cases, you might need to use `conda` for that specific operation. However, for day-to-day development and most common use cases, Mamba is a fully capable and superior replacement.

Q2: How does Mamba handle cross-platform compatibility?

Answer: Mamba, like Conda, is designed for excellent cross-platform compatibility. It works seamlessly across Windows, macOS, and Linux. The package repositories that Mamba accesses are the same ones Conda uses, which are built to support these different operating systems and architectures. This means that an environment created with Mamba on one operating system can often be replicated on another, provided the necessary packages are available for that platform.

The dependency resolution process in Mamba considers platform-specific requirements. When you request a package, Mamba looks for the version that is compatible with your operating system, architecture (e.g., x86_64, ARM), and Python version. This is a fundamental feature inherited from the Conda ecosystem that Mamba operates within. Its speed advantage remains across all platforms, making environment setup and management a faster experience regardless of your operating system.

The robustness of libsolv, the dependency solver Mamba uses, also contributes to its cross-platform reliability. It's adept at navigating the complex web of dependencies that can vary slightly between operating systems, ensuring that you can build consistent environments across your development team, even if team members are using different OSes.

Q3: Why is Mamba’s dependency resolution so much faster than Conda's?

Answer: The significant speed difference in dependency resolution between Mamba and Conda stems from their core architectural choices, particularly the underlying dependency solver. Conda traditionally uses a SAT (Satisfiability) solver. While SAT solvers are powerful general-purpose tools for solving logical problems, they can become computationally very expensive when faced with the large, complex, and highly interconnected dependency graphs typical of software package management. As the number of packages and their version constraints increase, the number of possible combinations that a SAT solver has to evaluate can grow exponentially, leading to long resolution times and high memory usage.

Mamba, on the other hand, utilizes libsolv. Libsolv is a highly optimized dependency resolution library that was developed specifically for package management systems, originating from the Linux distribution world (used in SUSE Linux Enterprise and openSUSE). Libsolv employs more specialized and efficient algorithms for graph-based dependency resolution. It focuses on building a dependency graph and then using techniques like constraint propagation and graph traversal to quickly identify a consistent set of package versions. This specialized approach allows Mamba to handle much larger and more complex dependency scenarios with significantly less computational effort and time. It’s akin to using a specialized tool designed for a specific job versus a general-purpose tool that can do the job but less efficiently. The result is that Mamba can often solve environments in seconds that might take Conda minutes, or even hours, to resolve.

Furthermore, Mamba’s efficient handling of package metadata and its ability to perform parallel downloads also contribute to its overall speed advantage, making the entire installation and update process much quicker.

Q4: Can I use Mamba and Conda together in the same environment?

Answer: While it's technically possible to install both Mamba and Conda into the same environment and use them, it is generally not recommended for practical day-to-day workflow. Mamba is designed to be a drop-in replacement for Conda, meaning you typically choose one as your primary command-line tool for environment and package management. Mixing the two can sometimes lead to confusion or unexpected behavior, especially if you're not careful about which executable is being called.

The intention behind Mamba is to provide a superior experience by replacing the Conda CLI commands with Mamba's faster implementations. If you install Mamba via `conda install mamba -n conda-forge`, it becomes available alongside `conda` in your Conda environment. You can then choose to use `mamba create`, `mamba install`, etc., instead of their `conda` counterparts. If you encounter a situation where `mamba` fails or you need a specific feature that is only reliably implemented in `conda` (which is rare), you can always fall back to using `conda` commands within that same environment.

However, for a clean and efficient workflow, it's best to standardize on one. Many users install Mambaforge, which comes with Mamba as the default, and then primarily use `mamba` commands. This avoids the mental overhead of deciding which command to use and ensures you're always benefiting from Mamba's performance optimizations.

Q5: What are the advantages of using Mambaforge?

Answer: Mambaforge is a minimal installer for Conda that includes Mamba as the default package and environment manager. Its primary advantage is providing a streamlined setup experience for users who want to leverage Mamba's speed and efficiency from the outset. Instead of installing Conda or Miniconda and then subsequently installing Mamba, Mambaforge gives you a pre-configured environment where `mamba` is the primary command.

This means:

Immediate Speed Benefits: All your package installations and environment creations will use Mamba's fast algorithms by default. Simplified Setup: You don't need an extra installation step to get Mamba working. It's ready to go right after installing Mambaforge. Consistent Environment Management: It ensures that your entire package management workflow is handled by Mamba, promoting a consistent and efficient experience. Minimal Footprint: Mambaforge aims for a lightweight installation, making it ideal for users who want a fast and efficient environment management system without unnecessary bloat.

For new users or those looking to optimize their workflow completely, Mambaforge offers a convenient and powerful way to adopt Mamba as their primary tool, ensuring they benefit from its superior performance and user experience from day one.

Q6: Are there any known limitations or drawbacks to Mamba?

Answer: While Mamba offers significant advantages, it's always good to be aware of potential limitations, though these are becoming increasingly rare as Mamba matures. One historical concern was that Mamba was sometimes slower to adopt new features or package types compared to Conda, as Conda's development often precedes Mamba's implementation. However, this gap has narrowed considerably, and Mamba now supports most if not all of the package types and functionalities that Conda does.

Another point, though less of a drawback and more of a nuance, is that the ecosystem is still largely built around Conda. This means that documentation, tutorials, and community support often refer to `conda` commands. While `mamba` commands are directly analogous and work the same way, you might occasionally need to mentally translate from `conda` to `mamba`. However, the `mamba` CLI is designed to be highly intuitive for Conda users, making this translation minimal.

Very occasionally, in extremely complex or bleeding-edge scenarios, you might encounter an edge case where Mamba's solver behaves differently than Conda's or fails where Conda succeeds, or vice versa. This is typically due to the inherent differences in their solving algorithms. In such rare instances, falling back to `conda` for that specific operation might be necessary. However, for the vast majority of users and use cases, Mamba's performance and reliability are superior.

The Mamba team is actively developing and improving the tool, and many of the historical limitations have been addressed. As Mamba's adoption grows, it's likely to become the de facto standard for fast and efficient Conda-style package management.

Conclusion: Embracing Mamba for a Faster Workflow

In conclusion, when considering "Why is Mamba better than Conda," the answer overwhelmingly points to speed, efficiency, and an improved user experience. Mamba's innovative use of libsolv for dependency resolution, its parallel package downloading, and its optimized metadata handling result in dramatically faster installation and environment management times. For developers and data scientists who spend a significant amount of time setting up, updating, and managing project environments, these performance gains are not just a convenience; they are a substantial boost to productivity.

The compatibility of Mamba with existing Conda channels and environments means that adopting it is a smooth transition, requiring minimal changes to your existing workflows. Whether you choose to install Mamba into your current Conda setup or opt for a dedicated distribution like Mambaforge, you're choosing a tool that’s designed for modern development needs. The question is no longer *if* Mamba is better, but rather *when* you will make the switch to experience its benefits firsthand.

From my own experience, the move to Mamba has been one of the most impactful upgrades I’ve made to my development toolchain. The reduced waiting times, clearer error messages, and overall responsiveness of the tool have made my daily work far more enjoyable and efficient. If you're still on the fence, I encourage you to give Mamba a try. The speed difference alone is usually enough to convince even the most skeptical users. Embrace the efficiency, and let Mamba help you spend less time waiting and more time creating.

Why is Mamba better than conda

Copyright Notice: This article is contributed by internet users, and the views expressed are solely those of the author. This website only provides information storage space and does not own the copyright, nor does it assume any legal responsibility. If you find any content on this website that is suspected of plagiarism, infringement, or violation of laws and regulations, please send an email to [email protected] to report it. Once verified, this website will immediately delete it.。