Advertisement Create a free account

Discoveries in Lag

1539286672

Edited 1539301219
About a year and a half ago, I made a post on the roll20 forums asking about ways to deal with lag in an exceptionally large campaign. Here's the tl;dr: 1. I have a huge campaign with 20+ DMs, 900+ maps, probably several thousand character sheets, both PCs and NPCs, as well as a bunch of handouts, tokens, rollable tables, and all the other things that go with a campaign that has gone on for over 4 years with an average of 5-8 sessions run per week. I fully understand that this is pushing the limits of what roll20 is meant to deal with. We know we're an edge case. 2. I was informed that "archiving" does not actually free up any memory as it is more of an organizational tool (a relic from pre-folder days) than an actual memory-saving tool (useful bit of info). Moreover, I was told by a roll20 mod that the primary issue would be the attributes from the journal sheets, as they are all loaded when a campaign is loaded and that maps (which as pages, are loaded dynamically), should not contribute to campaign lag . The reason I am here today is not to ask specifically for help, but to point out to others who are having similar issues that the advice I was given was incorrect, and that maps are the major contributor to campaign lag for people with larger campaigns . Side note: Now, in fairness to the mod in question, the roll20 built-in sheets for many systems are a massive bog of unnecessary journal attributes (see the first section of this post ), so if we had been using the built-in sheets, it's possible that would have been a major contributor; however, we used the "No sheet" format and just had about 15 standard attributes for our players to fill in (STR/CON/INT/etc. AC/Reflex/etc). The primary issue is that we were informed that maps should not contribute at all to campaign loading lag, which is demonstrably false. Some numbers! (We are still in the process of collecting data on this phenomenon, so more will be added.) Methods: Several complete copies of the game table were made (copying over Pages, Jukebox, Journals, etc but not Players or the Forums). Items were systematically deleted and the load times after deletion were recorded. Other copy campaigns were made, exlcuding either maps or journals but keeping other assets. All of the campaigns had WebRTC disabled (so no voice, video chat through roll20) to improve load time. Results: One of the DMs started by deleting all of the maps that were not his (eliminating 90+% of the maps in that campaign). The load time of the campaign went from about 75 seconds to about 14 seconds. This DM is to be commended in the effort he put in, as a mass-deletion tool for roll20 is conspicuously missing. (Vote for one here !) The content of the maps does not seem to have mattered. Deleting a "token storage" page that contained thousands of tokens had no noticeable effect on campaign load time. One caveat to point 2: Maps with dynamic lighting have longer individual load times when you click on them to open them up. This is not unexpected. A copied campaign that included all of the journals but none of the maps took approximately 12 seconds to load, compared to about 70 for the original campaign with all assets. A copied campaign that included all of the maps but none of the journals took approximately 60 seconds to load, compared to about 70 for the original campaign with all assets. Players with older equipment or slower internet connections (perhaps predictably) had much longer load times (up to several minutes) compared to those who had brand-new computers and Gigabit fiber connections. The lag in the original campaign was not limited exclusively to the initial campaign loading: macro prompts also often experienced delays between when they popped up and could be entered. Other noticeable victims of lag were rearranging attributes and abilities, rearranging sheets, time delay between pressing a macro and its result appearing in the chat window, and other basic roll20 functions. "Redboxing" was a fairly common occurrence, and the long load times made it challenging for players who had to reload. These issues were substantially reduced, usually to the point of unnoticeability, in the copy campaigns with reduced numbers of maps. Conclusions: Maps are, despite roll20 claims of being loaded dynamically, a major cause of campaign lag, and long-running campaigns that do not delete previous maps or "West Marches" or "LFR" style campaigns that accrue large numbers of players and maps are very vulnerable to lag from maps and other pages. While journals and sheets can contribute to this lag, they are, at least in the case of our campaign, not the major component of slow load times. I hope this post is useful to GMs in similar situations as well as potentially to roll20 devs who may not be aware of this issue. Good Hunting!
This is an incredibly, interesting set of data. I am quite surprised at the results, but nonetheless thank you for testing this.
A lot of the credit should go to Keledrath, baldhermit, and Aaron G as well as Matt W.  They all did a ton of work, and I hope I didn't miss anyone.
1539288562

Edited 1539288651
I can confirm the insane lag and loading times on lowspec comps. On my very old laptop (6+ years old), it could take as long as 20 minutes to load into a campaign of that size (includes reloads due to freezing). Also, all inputs would noticeably lag with complex macros (containing several input prompts). These macros can take up to a minute before showing up. All this is in addition to a slow or sometimes unreliable internet connection that I have. As such, roll20 barely creaks along, often requiring reloads on days with bad internet. If I’m running roll20 and a VOIP program together my internet can become very slow. This hasn’t made roll20 slow to the point of being unplayable, but it does greatly annoy other players and myself when things get really bad. I for one can’t play in maps using advanced FoW because of the insane lag it generates.
1539296104

Edited 1539296520
Interesting results. Did you notice significant loading time decrease when players load a campaign with fewer maps, as opposed to GMs? If this has legs, I got a mess o' Transmogrifyin' to do.
1539298438

Edited 1539298672
Drespar
Roll20 Team
Hi Matt! This is certainly a nifty set of data, and I look forward to seeing further results for such a large game (holy crap by the by lol) However, I will state, that I think there was a misunderstanding and thus a mistake in the previous statement from one of our mods. Roll20 has always loaded in all  assets (maps, characters, archived content, etc.) when the game starts. So if you have a large amount of maps they will certainly contribute, especially in comparison to sheet usage as you have described (several thousand with only 15 attributes each is going to be much less of a hog than several hundred with several thousand attributes each) Sorry for the confusion on this! EDIT: Just wanted to clarify this as well-- if a map has dynamic lighting, the load from calculating LoS should not be present when that map is not active. However, the map will still need to load, so the map itself would still contribute. I will say I am curious if there is a significant difference if dynamic lighting was stripped from the maps as well... Hmmm...
1539299833

Edited 1539300993
keithcurtis said: Interesting results. Did you notice significant loading time decrease when players load a campaign with fewer maps, as opposed to GMs? If this has legs, I got a mess o' Transmogrifyin' to do. Well, according to the roll20 team post above, my results were about as leggy as a drider. I noted no difference between player and GM loading time. Drespar said: Hi Matt! This is certainly a nifty set of data, and I look forward to seeing further results for such a large game (holy crap by the by lol) You know how these things start. Just a few folks and it just sort of steamrolls into 100+ people even with bimonthly purges of inactives. Being pretty much the only 4e game on LFG at any given time certainly hasn't hurt, especially (if you check the Orr Reports) as the 4e playerbase has a much larger player/game ratio than many other popular systems. However, I will state, that I think there was a misunderstanding and thus a mistake in the previous statement from one of our mods. Roll20 has always loaded in all  assets (maps, characters, archived content, etc.) when the game starts. So if you have a large amount of maps they will certainly contribute, especially in comparison to sheet usage as you have described (several thousand with only 15 attributes each is going to be much less of a hog than several hundred with several thousand attributes each) Sorry for the confusion on this! Yeah. I figured as much, and I am not one to pile on to an honest mistake. It was interesting because we actually had DMs porting monsters via vault out to a "Storage Campaign" (and back in if they ran that session or needed those monsters again) because we were under the impression that their attributes were the main force behind the lag. The results were not very noticeable, as you might imagine. EDIT: Just wanted to clarify this as well-- if a map has dynamic lighting, it should not contribute much when that map is not active. However, the map will still need to load, so the map itself would still contribute. I will say I am curious if there is a significant difference if dynamic lighting was stripped from the maps as well... Hmmm... Yes, my original point was not super clear, but loading the map with dynamic lighting itself was laggy, not necessarily any campaign with a large number of DL maps in it. As several of my DMs made analogies between having dynamic lighting in our campaign and "taking a hammer to your modem," we understandably did not have a lot of maps with DL in our campaign, and so did not perform any such experiments. :-)
This is very good to know. Thanks for bringing it up, Matt! I certainly believed that was how it worked.
1539310837
Bast L.
Pro
API Scripter
Interesting, thanks for the post. I've been archiving maps and creatures in a separate campaign, via transmogrifier, but maybe I don't need to bother with creatures.
1539315821

Edited 1539364621
Bast L. said: Interesting, thanks for the post. I've been archiving maps and creatures in a separate campaign, via transmogrifier, but maybe I don't need to bother with creatures. Again, recall that my campaign has very lean sheets compared to your average with relatively few attributes, usually about 20-25 max (though a decent chunk of abilities). YMMV.
1539360643

Edited 1539362072
Just as a data point. I deleted about 100 pages from my campaign and my load time went from 42 seconds to... 42 seconds. So there's no guarantee that this will give a performance boost. I deleted the cache and tried again. This time I got about 32 seconds, which seems to be in the ballpark of what is being reported.
1539361295
So, hi everyone. I'm one of the people who's been taking part in this experiment. I was just setting up a satellite for one of our other DMs and getting some metrics. Numbers are a bit rough, but there is definitely a trending pattern downwards. Initial (597 maps): 30 Mark 1 (500 maps): 27 Mark 2 (400 maps): 26 Mark 3 (300 maps): 22 Mark 4 (200 maps): 16 Mark 5 (100 maps): 11 Mark 6 (44 maps): 9 (This is the point where all maps not belonging to this DM had been deleted) Mark 7 (44 maps, approx 2/3 journals/handouts/folders deleted): 7