PDA

View Full Version : Which Is Faster?



UrsaTeddy
July 31st, 2020, 05:21
Greetings All,

I was wondering if loading a lot of Extensions is faster/slower than loading a single ruleset modified to contain the plugins being used.

That is, do extensions create overheads as each one loads versus a ruleset?

LordEntrails
July 31st, 2020, 05:52
Well, not having tested this or even with an intimate familiarity with FG, I'm pretty confident to say that loading a lot of extensions is going to be slower. This is because the total content is going to be larger and the computer is going to have more file operations as it calls and opens each file.

That said, those file call and opens are probably in the millisecond range. So unless you are loading hundreds of extensions that constantly overwrite the previous ones, I don't think you will notice.

From other discussions, campaign load times are heavily dependent upon the amount of content (objects in lists and modules and assets/tokens) that need to be loaded.

UrsaTeddy
July 31st, 2020, 06:52
Well, not having tested this or even with an intimate familiarity with FG, I'm pretty confident to say that loading a lot of extensions is going to be slower. This is because the total content is going to be larger and the computer is going to have more file operations as it calls and opens each file.

That said, those file call and opens are probably in the millisecond range. So unless you are loading hundreds of extensions that constantly overwrite the previous ones, I don't think you will notice.

From other discussions, campaign load times are heavily dependent upon the amount of content (objects in lists and modules and assets/tokens) that need to be loaded.

With that in mind, what about performance during the use of Fantasy Grounds? More extension slower performance or not?

Moon Wizard
July 31st, 2020, 07:01
Extensions are essentially just like ruleset layers.

For loading, the number and size of files will have some impact on load times.

For during play, the basic performance comes down to how many window classes, templates, string assets, font assets, etc. are defined across all ruleset layers and extensions. They are all loaded into giant dictionaries, so that they can be used to resolve API calls during play. On top of that, the performance is mostly driven by how many objects are in a window (including all the nested windows and fields); as well as how the scripts are written. Also, complex scripts that perform a lot of API calls or register for lots of API events will take more performance than simpler scripts. However, all those items are independent of how they are broken up into ruleset layers or extensions.

Regards,
JPG

UrsaTeddy
July 31st, 2020, 07:04
Extensions are essentially just like ruleset layers.

For loading, the number and size of files will have some impact on load times.

For during play, the basic performance comes down to how many window classes, templates, string assets, font assets, etc. are defined across all ruleset layers and extensions. They are all loaded into giant dictionaries, so that they can be used to resolve API calls during play. On top of that, the performance is mostly driven by how many objects are in a window (including all the nested windows and fields); as well as how the scripts are written. Also, complex scripts that perform a lot of API calls or register for lots of API events will take more performance than simpler scripts. However, all those items are independent of how they are broken up into ruleset layers or extensions.

Regards,
JPG

Great!

So no matter if I use Extensions or a Ruleset with baked in functionality, if those Extensions do the same thing as the functionality, there should be no really discernible difference?

Moon Wizard
July 31st, 2020, 07:06
Yeah, other than very minimal difference in loading time based on number of files; it all gets loaded before the tabletop initializes.

Regards,
JPG

UrsaTeddy
July 31st, 2020, 07:08
Yeah, other than very minimal difference in loading time based on number of files; it all gets loaded before the tabletop initializes.

Regards,
JPG

Thank you very much for that answer.

Have a great day!