When the ‘Insert Basic Objects’ widget is open (the little guy below), large selections may take upwards of seconds to process.
The cause is a microprofiler label titled InsertObjectProxyModel::setParentInstance which is run individually for each object in the selection. This label takes roughly 5 milliseconds to run and thus selections of over 200 instances will take over a second to process, causing studio to freeze for that duration. Anytime a single object is added onto the selected objects the label is once again run for every object in the selection.
This issue only occurs when the ‘Insert Basic Objects’ window is open. Closing it immediately fixes the problem - until you open it again.
The issue can easily be reproduced by opening a new file, inserting a bunch of objects e.g. using the command for i = 1, 1000 do Instance.new("Part").Parent = game.Workspace end and then shift-clicking a large number of these parts in the explorer. Below is a video demonstrating the issue. Notice how the properties panel takes seconds to update after selecting a large number of parts. The microprofiler label in question is also shown. Closing the widget immediately resolved the issue.
