FWIW, I'm doing this now, as a warm up before starting work on implementing animation accumulation.Chris wrote:The NIFLoader class should probably keep a map of skeleton/mesh pairs that have been loaded, so the load() method can get the appropriate information without having to load the NIF again.
Startup Performance
Re: Startup Performance
-
- Posts: 63
- Joined: 28 Dec 2012, 08:29
Re: Startup Performance
OK, I'll look for something else to do.Chris wrote:FWIW, I'm doing this now, as a warm up before starting work on implementing animation accumulation.
-
- Posts: 63
- Joined: 28 Dec 2012, 08:29
Re: Startup Performance
Inside MyGUI_3.2.0\Platforms\Ogre\OgrePlatform\src\MyGUI_OgreDataManager.cpp,
changing
to
Reduced the run-time of MyGUI::Gui::initialise by over 60% which reduced start-up time by 10% after all my other changes.
With all my optimizations combined, I have reduced start-up time on my machine by 68%. If I remove DirArchive altogther, my start-up time is reduced by 73% (but break case sensitive file-systems).
I have push my work in progress to https://github.com/blunted2night/openmw/commits/work/ if anyone is interested in the details of the changes I made.
changing
Code: Select all
bool OgreDataManager::isDataExist(const std::string& _name)
{
const VectorString& files = getDataListNames(_name);
return (files.size() == 1);
}
Code: Select all
bool OgreDataManager::isDataExist(const std::string& _name)
{
return Ogre::ResourceGroupManager::getSingleton().resourceExistsInAnyGroup (_name);
}
With all my optimizations combined, I have reduced start-up time on my machine by 68%. If I remove DirArchive altogther, my start-up time is reduced by 73% (but break case sensitive file-systems).
I have push my work in progress to https://github.com/blunted2night/openmw/commits/work/ if anyone is interested in the details of the changes I made.
Re: Startup Performance
Could you provide windows binaries for testing?
Re: Startup Performance
I think you might be able to inherit from OgreDataManager and tell MyGUI to use that (i.e. no patch needed). At least that was possible with OgreRenderManager.blunted2night wrote:Inside MyGUI_3.2.0\Platforms\Ogre\OgrePlatform\src\MyGUI_OgreDataManager.cpp,
-
- Posts: 63
- Joined: 28 Dec 2012, 08:29
Re: Startup Performance
I will see what I can do...hircine wrote:Could you provide windows binaries for testing?
Good call, I will implement that.scrawl wrote:I think you might be able to inherit from OgreDataManager and tell MyGUI to use that (i.e. no patch needed). At least that was possible with OgreRenderManager.
-
- Posts: 63
- Joined: 28 Dec 2012, 08:29
Re: Startup Performance
I put a .7z file with all the windows binaries (openmw & dependencies) I used. I tried the generated installer, but it didn't install the dependencies and I didn't have time to investigate.blunted2night wrote:I will see what I can do...hircine wrote:Could you provide windows binaries for testing?
https://docs.google.com/open?id=0B6SjCD ... jhIRUFYVEk
Re: Startup Performance
All merged. I got an overall loading performance improvement (startup and initial cell load) of nearly a factor of 2. Well done (the texture renaming changes make up most of that on Linux).
-
- Posts: 63
- Joined: 28 Dec 2012, 08:29
Re: Startup Performance
ThanksZini wrote:All merged. I got an overall loading performance improvement (startup and initial cell load) of nearly a factor of 2. Well done (the texture renaming changes make up most of that on Linux).
My NIF caching patch should have a noticeable effect too. I will rebase against your master and submit a pull request for you to review.
Re: Startup Performance
I'm curious about commit 218139351830d00b3b564b13ab7d16276b99c6d3 ("change texture renaming logic to increase performance"). Is this how vanilla MW works, by preferring the DDS file even if the exactly-named one exists?