Sure I will as always get ignored, thought I will still post something about this. Please read all before commenting.
I like all of the recent updates to minecraft, and I was exited for the 1.13 release, but now I can't play because something was done in 1.13 that forces my cpu to run at 100%. My fps run as always poorly, but:
generating a world in 1.12.2 -> 3-8 seconds - can reender 32 chunks (reloading chunks takes half a second)
from here and on anything I type can delay up to 30 seconds to appear on chat, and controls such as walking forward don't respond at all + 10-30 fps drop = no more pvp
in 1.13.2 -> between a minute or crash - can reender 16 chunks (changing reender distance can crash the game also reloading chunks)
1.14 snapshots -> a minute + I can put any reender distance I want, but I will be able to see 5 chunks and I cant load new chunks (stuck on spawn)
and yeah I use optifine for 1.13 and 1.12
Not sure it the problem is the usage of now names to everything instead of number id. I have no idea if the program still uses number id's or it completely switched to string id's... but I personally would never use string id on any java program I make if you have a million operations every second with it.
you can skip this, but I will explain why a numerical id is better in java:
this is an integer -2,147,483,648 .. 2,147,483,647 (you can name 4294967295 different blocks or have 32 different tags like: is it translucent?)
0000 0000 0000 0000 0000 0000 0000 0000
this is a short -32,768 .. 32,767 (65535 or 16)
0000 0000 0000 0000
this is a byte -128 .. 127 (255 or 8)
and here we have one character: (65535 different letters)
0000 0000 0000 0000
this can be shortened to be half the size
it can be used as the numerical id, but if they decided to use it like this: stone, witch I doubt, we ran into a problem, since the word stone needs at least this space:
[0000 0000 , 0000 0000 , 0000 0000 , 0000 0000 , 0000 0000]
and we run into worse performance issues, since a string (the ordered characters) is an array. I have very little experience with java but I know that arrays impact very badly the performance. Not sure if strings do this, but arrays care with them a numerical id for every component.
strings are more complex to match: the computer finds it harder to tell if we have written stone than if we say him 1.
well I'm sure that we're not using strings to get block states or any other such stuff because then I wouldn't be sure how would even worlds get saved, then why am I telling all of this? because you have made a mistake while programming of such nature, that might get unnoticed by a gamer pc or a super server. BUT very small servers start to run into problems, and old computers cant even work with it. Maybe the problem isn't rly a mistake but simply placing too many layers of code, one over the other. Until it all collapses. -> at some video I have watched, minecraft java edition got mentioned as spaghetti code, so I would pls request after 1.14 go and fix all of your mistakes, rework the code before it gets worse.
I have been able to walk 1 minute on a 1.14 world and with f3 I pointed at a grass block: there where tags like: is it enderman grabable? like 5 or 6 of those things... rly couldn't it be simpler?
probably you have already been working on graphics upgrades witch don't take effect on old hardware like vbos. Yes you have done stuff for it to work better, but transistors soon wont get any smaller, and fixing it when problems start to be noticeable everywhere...
just pls go dig into the code and see what you can improve, maybe even go and post somewhere bits of code so volunteers help out.
1.14 is a snapshot thats put out for people to test and is unfinished and not fully optimised, also Mojang do not visit this forum, this forum is run by Curse and has no official affiliation with Mojang