Board Thread:Lua Help/@comment-3320283-20140811023705/@comment-11733175-20140811100952

I think mw.loadData essentially loads the page, then marks it as loaded from then on. If anything else tries to load the same page it'll notice it's marked as loaded and look it up there instead of loading the page from scratch again. Think of it like caching.

As for having lots of subpages, every time you load a page through require or mw.loadData a new Title instance is created which is expensive. You might have heard of expensive in parser functions, it's the same thing and caused by the new Title instance. There is a limit to how many expensive parser function you can use, so I assume there's something equivalent for loading module but last time I asked one of the devs about it he said it was largely unexplored.

The way he put it was that if you wanted speed, then to have everything in one module. If you wanted reusability, but everything in separate modules. It's a tradeoff either way, as if you have everything in one you could end up making the page load slower due to the sheer size of the module it needs to parse.