Tinkers Construct

Tinkers Construct

160M Downloads

Oredict Melting takes too long

Krutoy242 opened this issue ยท 4 comments

commented

Minecraft Version

1.12.2

Forge Version

14.23.5.2855

Mantle Version

1.3.3.55

Tinkers' Construct Version

2.13.0.183

Describe your issue

Oredict Melting function registerRecipeOredictMelting() takes too long in big modpacks. About 15-40 seconds 5-10% of total modpack loading time.
Please, add config option to disable this feature.

I did some time measurements. There is example for Enigmatica 2: Expert:

And another example of even bigger modpack E2E-E:

On the pie chart it clear that Oredict Melting itself take huge amount of load time:


Please, add configurable option to disable this method completely.
As modpack maker, i could add all significant recipes manually with CraftTweaker to speedup game loading process.

Perfect solution would be implementing Oredict Melting caching, so TCon would cache all found recipes on first run and then only load cached file, saving time on iteration each item and liquid again and again.

Logs

debug.log

commented

You know it's been years since a 1.12 release? It's unlikely to get another build. There is no issue like this on 1.16.5

If this would have been reported sooner, there is a better chance we could have done something about it. At the time it was implemented, no one had issues with it

commented

Making a pull request means I have to review the pull request, make a release, then make another release when that release breaks. It also means I have to justify why I made this release but won't make another to fix another simple bug, and evnatually that leads to me spending my time updating an old version that we dropped instead of working on finishing the new version. I don't have time to add another project like that.

Additionally, I don't see a new release being worth it for a minor issue like this, you claim it takes up to an extra 40 seconds on startup? The average 1.12 pack for me takes over 10 minutes to start, so while 40 seconds is extra time, its not like you will notice 40 seconds when you have to wait 10 minutes anyways. If you had brought this up around February of 2020 when we were still doing releases, it would have been a trivial config option. But at this time I don't even have a working 1.12.2 workspace to test the change and I don't push builds that I don't test myself.


Yes, someone was interested in being a maintainer, but no one is currently maintainer. And honestly, I would rather just release a beta for 1.16.5 and entirely drop support for 1.12.2 as thus far its just minor issues that you can ignore. The only reason we are considering having a maintainer is because people won't move on despite it having been years since the last build.

commented

It's unlikely to get another build.

I requested these changes because I heard that version 1.12 has a maintainer.

The solution to the problem could be a simple true / false line in the config and returning the function if false.

Does it make sense for me to figure out how to compile version 1.12 and make a Pull Request myself?
It may take me a month since I have never written in Java, but if the PR would be merged I can try.

commented

This issue was resolved by another dev through mixin mod: https://www.curseforge.com/minecraft/mc-mods/tinkers-oredict-cache