OK, i've been nosing through the code in a decompiler to see about the json zip extraction, but I noticed something inefficient relating to the garbage collector. Seeing as that's a hot topic wrt stuttering I thought I'd mention it.
In DataHandler.JsontoData routine, every json file is inspected and every key entry is read and added to a dict. However, every entry is also added to a string (not a stringbuilder) in a loop to create a huge string. This string is then discarded 😀
OK, there is a special case test right at the end that will print this string to log, but it would probably be better if the test was done first, and the string appending only performed if true.
The string is also used in the exception handler but only to show the last entry read, but as every valid key is added to the dict in the loop, changing this to print out the dict's entries would achieve the same result.
I'm sure the constant reallocation of memory for this string for every one of the many json files, with something like half a gb of data between them is killing the GC. Not to mention a small perf hit during load.