[BUG-225521] [FIXED] [EEP] Each time the "My Environments" floater is opened, the viewer freezes twice #4300
Comments
Whirly Fizzle commented at 2018-09-22T03:17:45Z NOTE! BUG-225522 may be the reason this freeze is so bad on my account. |
Ansariel Hiller commented at 2018-09-22T19:39:47Z This is caused by the fact that the floater contains a complete inventory panel and it takes a while to build up those 10 thousands of inventory items. And using another complete inventory panel is a very bad idea on 32 bit builds anyway where memory is short already. |
Ansariel Hiller commented at 2018-09-24T20:28:25Z, updated at 2018-09-24T20:28:50Z After talking to Rider Linden, he asked me to add this here: The LLInventoryPanel used in the floater is creating a full inventory model, including everything else and not only environment settings. As I understood him, the actual plan was to create a list similar to one in the "Places" window. That one is using an LLInventoryListItem or similar, derived class to create a flat list. The inventory items can easily be collected by using a specialized LLInventoryCollectFunctor, similar to the one I created for Firestorm while plugging the new EEP features into Firestorm: class FSSettingsCollector : public LLInventoryCollectFunctor
{
public:
FSSettingsCollector() { }
virtual ~FSSettingsCollector() {}
bool operator()(LLInventoryCategory* cat, LLInventoryItem* item)
{
if (item && item->getType() == LLAssetType::AT_SETTINGS &&
mSeen.find(item->getAssetUUID()) == mSeen.end())
{
mSeen.insert(item->getAssetUUID());
return true;
}
else
{
return false;
}
}
protected:
std::set<LLUUID> mSeen;}; Above collector filters out duplicate assets, but can easily changed to collect even duplicates. |
AndreyK ProductEngine commented at 2018-10-03T12:34:29Z, updated at 2018-10-03T12:45:36Z @whirly |
Whirly Fizzle commented at 2018-10-08T00:42:34Z, updated at 2018-10-08T00:43:52Z Testing on Second Life Project EEP 5.1.10.520253 (64bit) Still horrible the first time I open My Environments in a session ~12,000ms in Find Widgets. Subsequent times I open My Environments, it's much better now. |
Whirly Fizzle commented at 2018-10-08T00:44:41Z Feel free to hijack Whirly Fizzle on Aditi if you want to test. |
AndreyK ProductEngine commented at 2018-10-08T12:04:41Z, updated at 2018-10-08T12:06:05Z
|
Whirly Fizzle commented at 2018-10-10T19:38:03Z @andreyk |
AndreyK ProductEngine commented at 2018-10-11T11:38:38Z, updated at 2018-10-11T11:41:15Z @whirly |
Whirly Fizzle commented at 2018-10-12T21:59:44Z Confirmed fixed in new public build: Second Life Project EEP 5.1.10.520475 (64bit) |
Steps To Reproduce
Login on an EEP viewer to an EEP enabled region
Go to World -> Environments -> My Environments
Observe viewer performance
Note: You may need an account with a large inventory to reproduce this well.
Feel free to hijack Whirly Fizzle on Aditi for testing.
Observed Behaviour
Each time the My Environments floater is opened the viewer freezes badly twice.
Fig 1 shows Fast Timer results for the first freeze.
The first freeze occurs before the floater appears on screen.
Fast timers show the freeze is in Find Widgets - 11,465ms, 927683 calls
Fig 2 shows Fast Timer results for the Second Freeze.
The second freeze occurs before the settings are loaded into the My Environments floater.
Fast timers show the freeze is in Inventory Sort - 4104ms, 13,671 calls
Expected Behaviour
For the viewer not to freeze each time you open My Environments.
Attachments
Original Jira Fields
The text was updated successfully, but these errors were encountered: