Quantcast WoWInterface - View Single Post - Addon settings take excessive amount of time/syscalls
View Single Post
11-28-16, 09:24 AM   #5
sylvanaar
A Black Drake
AddOn Author - Click to view addons
Join Date: Sep 2006
Posts: 82
I followed your reasoning until the last part then you lost me.

I have been on a few of these threads. They usually bring up good questions but fail in going to go figure out why it is how it is.

Most of wow's files a are larger than the one's you are observing.

If you truly wanted to speed up loading of those small files.

You would need to find areas that you could take to them and say hey, "this slows it sown during startup/shutdown", they have their own things to think about - in general, load time isn't and hasn't been one of them

Sure they could speed up loading by loading more things fully into ram and closing the file handles, then doing what they need to do with those things whether it is to compile and load them into the Lua environment

So what were they doing? Well - my guess with the non-overlapped IO and the small writes was trying to prevent as little data loss as possible while persisting the savedVariable

Your best bet is to go run it off a ramdisk and just take over responsibility for data consistency yourself. Perhaps in the process you will learn something that might really help the community, you sound like you have the skill.

I'll give you an example. At one point the community came together that if we removed embedded libraries from our addon, the file references that were left would try to load, then fail during startup. It turns out that having a missing file while loading can cut your loading time more than half. It is thought that addons and resources were loaded in a predefined relative order, and if there was an error loading one, then you would have to stop the dependencies and restart the load on everything affected.

One thing you may say is that we tend to use global profiles and app settings (Rather than per-character)

I suggested a novel way to get around this back then, but to do it right - you need a tool

Cheers, Good luck