Mod

LazyDFU

Quick rating

LazyDFU

No reviews yet

Makes the initialization of DataFixerUpper "lazy", making the game start more quickly

No Theme
No Genre
Performance & Optimization
Mod Loaders
Fabric
Minecraft

Community voices

Reviews

Versions
Loading versions…
Match includes

Click once to include, again to exclude, again to clear

Rating Any
Any 0.5 1.0 1.5 2.0 2.5 3.0 3.5 4.0 4.5 5.0
Min
Max
Play Status
Reviews
Time Played
hrs+
Verified developers only
Has developer response
List view
Grid view
Compact view
Sort by
Date
Rating
Helpful
Unhelpful
Edited
Sort ascending
Delete this review?

This removes your review from the project. You can write a new review after.

Review submitted for moderation

Your review has been sent to moderators, who will check that it meets our guidelines before it appears publicly.

No reviews yet. Be the first to review this project!

Get it on

Available Platforms

Compatibility

Supported Environments

Dev Environment
Client Optional
Server Optional

About

Project Details

Type
Mod
License
MIT License
Latest Version
LazyDFU 0.1.3
Authors
CurseForge
Modrinth

For authors

Embed Badge

If you're the author of this project, you can embed a live badge anywhere that supports HTML or Markdown. It updates automatically whenever ratings change.

Custom banner text
ModDex rating badge preview

Use HTML for any page that supports it, or Markdown for README files and Markdown-based descriptions.

Identifiers

Platform IDs

CurseForge ID
Modrinth ID

Resources

External Links

Source Issues Wiki Discord

About

Description

LazyDFU is an optimization mod for Minecraft that defers unnecessary initialization work so that it is only performed if required. Specifically, it makes the initialization of DataFixerUpper "lazy" - that is, it will not immediately create the rules required to migrate data from older versions of Minecraft to newer versions until it actually needs to do so.

THIS IS A FABRIC MOD. ANY VERSION FOR ANY OTHER MOD LOADER IS UNOFFICIAL AND NOT SUPPORTED BY ME. YOU HAVE BEEN WARNED.

As of Minecraft 1.19.4 and above, however, Mojang has significantly optimized DFU initialization enough that this mod is no longer necessary in many configurations. It will continue to be supported for older versions of Minecraft.

Compatibility

LazyDFU 0.1.2 is compatible with Minecraft 1.14 through 1.18.2, and works on the client and server side.

LazyDFU 0.1.3 is compatible with Minecraft 1.19 and above, however Mojang now implements the functionality LazyDFU provides on the server side. The client still initializes all DFU rules by default, so LazyDFU hooks into the native client functionality that enables DFU rule baking and turns it into a no-op.

Sponsor me!

Did this mod make Minecraft playable for you? Chip in a bit of money so I can continue developing it.

Why does it work?

DataFixerUpper (often abbreviated to DFU) is the Minecraft component responsible for handling world upgrades from older versions of Minecraft to newer versions. DFU is initialized very early in the Minecraft startup process - in fact, it's initialized before the game window even appears. It is laughably overengineered and very slow, but it's what Mojang gives us to work with.

As part of the DFU initialization process, it caches rules required to convert from older versions to MInecraft through every version in between, up to the version of the game being launched. This process takes place in the background, but it is extremely slow, as it is both CPU and memory intensive. With Minecraft 1.16.5, I have measured this process take 9 seconds on a Ryzen 9 3900X desktop (a high-end desktop CPU released in 2019) and 57 seconds on a laptop with an i5-8250U (a mid-range laptop chip from 2017).

All LazyDFU does is stop this process - it lets DFU initialize, but it will force it to not cache all these rules. As a result, the DFU rules are only compiled when a world needs to be converted. This means it is possible you may see lag spikes if LazyDFU forces the game to compile migration rules, but once complete there is no performance penalty.

Prove it to me

I recorded a video that shows you how effective LazyDFU is.

Comparing it to other mods

In comparison to other mods, LazyDFU has the primary advantage of being simple, safe, and having low impact on the game.

  • LazyDFU is a very simple mod. The entire mod is about a dozen lines of code, about as uncomplicated as a mod can get, while still delivering huge benefits. (This means it's also an ideal mod to use to experiment with a new Mixin platform!)
  • LazyDFU is highly compatible and safe. LazyDFU is extremely unlikely to conflict with other mods. This mod is based on a similar patch in Paper that had been in use for over a year with no reported issues with migrating to newer versions of Minecraft. (Paper has since changed to replacing Mojang's data fixers with a highly optimized implementation of its own.)

LazyDFU is an optimization mod for Minecraft that defers unnecessary initialization work so that it is only performed if required. Specifically, it makes the initialization of DataFixerUpper "lazy" - that is, it will not immediately create the rules required to migrate data from older versions of Minecraft to newer versions until it actually needs to do so.

This mod is for Fabric/Quilt

Compatibility

LazyDFU 0.1.2 is compatible with Minecraft 1.14 through 1.18.2, and works on the client and server side.

LazyDFU 0.1.3 is compatible with Minecraft 1.19 and above, however Mojang now implements the functionality LazyDFU provides on the server side. The client still initializes all DFU rules by default, so LazyDFU hooks into the native client functionality that enables DFU rule baking and turns it into a no-op.

As of Minecraft 1.19.4 and above, however, Mojang has significantly optimized DFU initialization enough that this mod is no longer necessary in many configurations. It will continue to be supported for older versions of Minecraft.

Sponsor me!

Did this mod make Minecraft playable for you? Chip in a bit of money so I can continue developing it.

Why does it work?

DataFixerUpper (often abbreviated to DFU) is the Minecraft component responsible for handling world upgrades from older versions of Minecraft to newer versions. DFU is initialized very early in the Minecraft startup process - in fact, it's initialized before the game window even appears. It is laughably overengineered and very slow, but it's what Mojang gives us to work with.

As part of the DFU initialization process, it caches rules required to convert from older versions to MInecraft through every version in between, up to the version of the game being launched. This process takes place in the background, but it is extremely slow, as it is both CPU and memory intensive. With Minecraft 1.16.5, I have measured this process take 9 seconds on a Ryzen 9 3900X desktop (a high-end desktop CPU released in 2019) and 57 seconds on a laptop with an i5-8250U (a mid-range laptop chip from 2017).

All LazyDFU does is stop this process - it lets DFU initialize, but it will force it to not cache all these rules. As a result, the DFU rules are only compiled when a world needs to be converted. This means it is possible you may see lag spikes if LazyDFU forces the game to compile migration rules, but once complete there is no performance penalty.

Prove it to me

I recorded a video that shows you how effective LazyDFU is.

Comparing it to other mods

In comparison to other mods, LazyDFU has the primary advantage of being simple, safe, and having low impact on the game.

  • LazyDFU is a very simple mod. The entire mod is about a dozen lines of code, about as uncomplicated as a mod can get, while still delivering huge benefits. (This means it's also an ideal mod to use to experiment with a new Mixin platform!)
  • LazyDFU is highly compatible and safe. LazyDFU is extremely unlikely to conflict with other mods. This mod is based on a similar patch in Paper that had been in use for over a year with no reported issues with migrating to newer versions of Minecraft. (Paper has since changed to replacing Mojang's data fixers with a highly optimized implementation of its own.)

Screenshots

Gallery

This project has no gallery images yet.

Versions

Files

Relations

Project Relations

More like this

Similar Mods

Suggestions use data such as tags, dependencies, dependents, descriptions, titles, and more to rank how much they overlap with this mod.

On ModDex

Community snapshot

0
Ratings
0
Followers
0
In stacks

By the numbers

Statistics

40.8m
Total Downloads
CurseForge
27.2m
Modrinth
13.6m
Last Updated
CurseForge
Modrinth
Created
CurseForge
Modrinth
Last synced
When ModDex last fetched and imported data for this project from CurseForge or Modrinth. High-traffic and active projects are checked more often.
Next pipeline sync