This occurs every time I open it and effectively renders the widget unusable. I do not recall having anything close to a performance issue with the studio interface until the “next gen” interface was fully released, removing the option to downgrade for performance improvements.
hey! would you be able to tell us what your storage specs are? specifically the drive where you have your studio settings file/studio installed. we know there’s an issue in visualization modes where it reads a lot of settings when opened, i’d like to fix this sometime soon so that it can opened instantly, but i’ve never seen it be this slow.
hey! been talking to some others about this. how big is the file at %localappdata%\Roblox\<UserID>\InstalledPlugins\0\settings.json on your system? i saw from the microprofiler dump that the setting calls are what’s taking the longest, which is likely because the settings file taking a long time to open due to its size.
all locally installed and built in plugins write to this file for their settings, so if you had a plugin that wrote a ton to it incidentally, it’d cause a bunch of operations in studio to block.
we can’t do anything to fix this very readily, but for your specific case, i assume you had a plugin that created a bunch of new settings incidentally, so if you can delete those entries then your problem should go away.
Do you know of a program where I can possibly view the structured json in this file without crashing?
Edit: While I’m unable to view the entirety of the file in any text editor I have downloaded, I can tell that the vast majority of data is direct instance api dumps used by various plugins that pertain to instance copying/parsing.
I’ve even personally made some of these plugins myself, seeing using an api dump was the only option for implementation prior to the recent release of ReflectionService.
However, this doesn’t explain why the VisualizationModes widget is the only BuiltInPlugin to experience debilitating load times, despite the fact that other plugins actively query settings with no issues.
that file should only store settings. were you saving api dumps to your plugins settings?
visualization modes is one of the only built in plugins that uses :GetSetting and :SetSetting extensively, which is why it’s impacted so heavily. every time you open the vismodes panel it reads a bunch of settings with each one doing file io on that one 6.7mb file. i’d like to fix this sometime soon
Yes, 3 plugins I have installed directly cache api dumps queried from MaximumADHD’s Roblox Client Tracker to fufill a distinct purpose involving reading generic instance properties.
The most significant of which is Codify which has a 2.1MB api dump.
Codify keeps a copy of the dump to save on HTTP requests and speed up generation; however, I’m quite happy to add a settings toggle to disable caching. I’d love to switch over to ReflectionService to eliminate HTTP requests entirely, but sadly it doesn’t provide enough information to be useful.
(That said, I do have a potential method that can compress that dump down to around 18KB, which I’ll look at attempting to integrate to Codify at some point)
what information do you still need in ReflectionService? i can forward to the right people if you have a feature request or specifics. super cool plugin btw
I fear this is off topic here, but essentially, since Codify produces code designed to be run from a standard script Instance, I need to be able to filter out properties that can’t be accessed or written in a standard context.
Codify specifically filters out class properties that[1][2]: are deprecated, have no security restrictions, are scriptable, are not read only, and are not hidden. Last time I checked, there wasn’t enough information provided by ReflectionService to satisfy these constraints.
It would actually be really handy if the actual API dump was accessible from the ReflectionService, since that’s what we’ve always based our tooling around for years now.
Just to keep you updated, Codify v2.10.0 now has the option to disable caching for remote dumps and supports ReflectionService, so you can clear your dump and hopefully see some improvements on your settings.json file size (and Studio load times) now.