Skip to main content

SimpleBackups - 7zip support removed

ยท 2 min read
MelanX
Main Dev @ Chaotic Trials

The Minecraft 26.1 release brought a new feature to SimpleBackups: ZSTD and 7ZIP compression. Now, only 4 days later, I remove the support for 7ZIP.

7ZIP is a very popular compression format, and because of that, I implemented it to SimpleBackups. However, while trying to create some comparison tests for the wiki, I realized that the 7ZIP compression wasn't really working. First, I forgot to add one line in the build.gradle file to include the correct library for 7ZIP. Second, even adding the library correctly didn't fix the problem in production. In development, everything was working fine.

Now, I made some tests in development. Because of the results, I decided to remove the support for 7ZIP and keep ZSTD and ZIP for now. For everyone interested, here are the results of the tests:

The test world is roughly 3,480,817,649 Bytes. Why roughly? Because the world was running during the tests. I didn't move, but entities did.

Compression Level: Defaultโ€‹

ZIP7ZIPZSTD
Time49.606s04:27min9.881s
Compression ratio72.3 %71.6 %71.2 %
Exact size2,517,893,0382,493,717,5932,478,299,046

Compression Level: 1 (Fastest, but worst compression)โ€‹

ZIP7ZIPZSTD
Time45.242s04:43min9.819s
Compression ratio72.5 %70.7 %71.2 %
Exact size2,523,151,2882,459,428,4192,478,380,222

Compression Level: 9 (Slowest, but best compression)โ€‹

ZIP7ZIPZSTD
Time54.607s10:40min06:15min
Compression ratio72.3 %69.1 %68.6 %
Exact size2,517,174,3062,404,865,3822,388,058,325

Conclusionโ€‹

As you can see from the results, 7ZIP is roughly as good as ZSTD but 7ZIP is extremely slow. Because of that, I'll remove the support for 7ZIP entirely instead of finding a solution to keep it.

Maybe a little sneak peek for another compression format:

DefaultFastestSlowest
Time47.973s36.948s04:25min
Compression ratio37.9 %47.2 %32.2 %
Exact size1,320,888,8791,643,665,6041,120,662,253

As a little extra, I also publish a SimpleBackups version that already bundles zstd-jni. You can use this if you wish to use this instead of the slim version and downloading zstd-jni manually.