Giter Club home page Giter Club logo

Comments (7)

Ortham avatar Ortham commented on August 13, 2024

Significant times:

[06:53:13.113143] [info]: LOOT Version: 0.13.1+fc664279
[06:53:13.263640] [info]: Attempting to open link: http://loot/ui/index.html
[06:53:15.434012] [info]: Getting LOOT's supported languages.
[06:53:16.147175] [trace]: Sending progress update: Parsing, merging and evaluating metadata...
[06:53:16.859902] [info]: Loading 360 plugins using 6 threads, with up to 60 plugins per thread.
[06:53:16.866274] [trace]: Starting plugin loading.
[06:53:50.456895] [debug]: Parsing metadata list(s).
[06:53:50.949079] [trace]: Getting masterlist metadata for: Skyrim.esm
[06:53:56.937978] [trace]: Getting masterlist metadata for: ccbgssse010-petdwarvenarmoredmudcrab.esl
[06:53:59.825111] [info]: Getting LOOT's version.

So that's:

  • 3 seconds just to load the initial UI
    • Hopefully the polymer 3 UI update will improve that.
  • 34 seconds to parse plugin headers and process them
    • Most time seems to be spent checking if the plugin loads an archive, as each plugin will iterate over the Data directory contents looking for BSAs (~ 0.5s per plugin). A hashset of BSAs could be populated before loading plugins and reused instead.
  • 6 seconds getting masterlist metadata that was mostly spent calculating DLC plugin CRCs
    • It looks like CRC caching isn't working here.
  • 3 seconds getting masterlist metadata for the other ~355 plugins
    • It looks like CRC caching isn't working here.
    • The whole load order is fetched for each plugin, which also adds up (~ 1.5 ms per plugin) and is probably easy to avoid.

from libloot.

ElminsterAU avatar ElminsterAU commented on August 13, 2024

Just a further bit of information, I'm running LOOT from inside MO2.

from libloot.

Ortham avatar Ortham commented on August 13, 2024

@eFrysTon Try replacing your loot_api.dll with this one, and upload the debug log that results in.

from libloot.

MacSplody avatar MacSplody commented on August 13, 2024

I'll add a few Debug logs for comparison.

Only DLC outside MO2.

LOOTDebugLog.txt

Start up with no metadata, only the settings.toml in appdata\local\loot folder.
Then updated metadata, sorted & restarted.


Only DLC running from MO2.

LOOTDebugLog.txt

Start up with no metadata, only the settings.toml in appdata\local\loot folder.
Then updated metadata, sorted & restarted.

from libloot.

ElminsterAU avatar ElminsterAU commented on August 13, 2024

LOOTDebugLog - slowish start.zip

There are some slight differences because my load order has changed slightly. But I don't think these changes should have a huge impact on the time.

Before:
[06:53:13.113143]
[06:53:59.825111]
~46 sec

After:
[18:08:15.338328]
[18:08:25.455277]
~10 sec

from libloot.

Ortham avatar Ortham commented on August 13, 2024

Some more detail from the new log:

[18:08:15.338328] [info]: LOOT Version: 0.13.1+fc664279
[18:08:15.558051] [info]: Attempting to open link: http://loot/ui/index.html
[18:08:17.913766] [info]: Getting LOOT's supported languages.
[18:08:17.914230] [info]: Getting LOOT's settings.
[18:08:18.678810] [trace]: Sending progress update: Parsing, merging and evaluating metadata...
[18:08:20.950628] [info]: Loading 374 plugins using 6 threads, with up to 63 plugins per thread.
[18:08:21.112473] [trace]: Starting plugin loading.
[18:08:21.207521] [debug]: Parsing metadata list(s).
[18:08:21.666102] [trace]: Getting masterlist metadata for: Skyrim.esm
[18:08:22.294237] [trace]: Getting masterlist metadata for: ccbgssse010-petdwarvenarmoredmudcrab.esl
[18:08:25.455277] [info]: Getting LOOT's version.

Observations:

  • Loading settings is weirdly slow, something to look into in the LOOT application.
  • Finding valid plugins to load is a bit slow (~ 2s), multithreading that like how plugin loading is might help.
  • Plugin loading went from 34 seconds (for 360 plugins) to < 0.09 seconds, so that's good. 👍
  • Getting masterlist metadata for the official plugins went from 6 seconds to 0.6 seconds. 👍
  • Getting masterlist metadata for other plugins still takes 3 seconds, mostly due to CRC calculations. There's nothing particularly inefficient going on, getting metadata in parallel might help but that's something for the LOOT application to do.

So I might be able to shave off another second or so in the LOOT API without too much effort, otherwise the remaining areas of improvement are in the LOOT application.

from libloot.

Ortham avatar Ortham commented on August 13, 2024

Finding valid plugins is actually done in the LOOT application. As all the low hanging fruit are now outside the LOOT API, I'll close this issue and open another in the loot/loot tracker.

from libloot.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.