Skip to content
This repository has been archived by the owner on Mar 28, 2024. It is now read-only.

[BUG-225521] [FIXED] [EEP] Each time the "My Environments" floater is opened, the viewer freezes twice #4300

Closed
sl-service-account opened this issue Sep 22, 2018 · 10 comments

Comments

@sl-service-account
Copy link

sl-service-account commented Sep 22, 2018

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
Field Value
Issue BUG-225521
Summary [FIXED] [EEP] Each time the "My Environments" floater is opened, the viewer freezes twice
Type Bug
Priority Unset
Status Closed
Resolution Accepted
Labels whirly-eep
Reporter Whirly Fizzle (whirly.fizzle)
Created at 2018-09-22T02:56:16Z
Updated at 2020-06-15T15:23:33Z
{
  'Build Id': 'unset',
  'Business Unit': ['Platform'],
  'Date of First Response': '2018-09-22T14:39:47.395-0500',
  'Original Reporter': 'Whirly Fizzle (whirly.fizzle)',
  'ReOpened Count': 0.0,
  'Severity': 'Unset',
  'System': 'SL Viewer',
  'Target Viewer Version': 'viewer-development',
  'What just happened?': 'Filling in...',
  'What were you doing when it happened?': '....',
  'What were you expecting to happen instead?': '.....',
  'Where': 'secondlife://Aditi/secondlife/EEPTesting/242/55/23',
}
@sl-service-account
Copy link
Author

Whirly Fizzle commented at 2018-09-22T03:17:45Z

NOTE! BUG-225522 may be the reason this freeze is so bad on my account.

@sl-service-account
Copy link
Author

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.

@sl-service-account
Copy link
Author

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.

@sl-service-account
Copy link
Author

AndreyK ProductEngine commented at 2018-10-03T12:34:29Z, updated at 2018-10-03T12:45:36Z

@whirly
Please check if possible. Is this one better? For me it opens really fast at 108K items account. But I suspect you have larger and 'live' inventory.
Win64: http://automated-builds-secondlife-com.s3.amazonaws.com/ct2/25422/199947/Second_Life_Test_5_1_10_520187_x86_64_Setup.exe
MAC: http://automated-builds-secondlife-com.s3.amazonaws.com/ct2/25421/199936/Second_Life_Test_5_1_10_520187_x86_64.dmg

@sl-service-account
Copy link
Author

Whirly Fizzle commented at 2018-10-08T00:42:34Z, updated at 2018-10-08T00:43:52Z

@andreyk,

Testing on Second Life Project EEP 5.1.10.520253 (64bit)
Hopefully this is ok as it's a later build then your test build.

Still horrible the first time I open My Environments in a session ~12,000ms in Find Widgets.
https://prnt.sc/l3d7pj

Subsequent times I open My Environments, it's much better now.
~6,000ms in Find Widgets.
There is only a single freeze on subsequent openings now too.

@sl-service-account
Copy link
Author

Whirly Fizzle commented at 2018-10-08T00:44:41Z

Feel free to hijack Whirly Fizzle on Aditi if you want to test.

@sl-service-account
Copy link
Author

AndreyK ProductEngine commented at 2018-10-08T12:04:41Z, updated at 2018-10-08T12:06:05Z

Hopefully this is ok as it's a later build then your test build.
Change is not yet in Second Life Project EEP 5.1.10.520253
Likely will be there in couple days.

@sl-service-account
Copy link
Author

Whirly Fizzle commented at 2018-10-10T19:38:03Z

@andreyk
Tested on Second Life Test 5.1.10.520187 (64bit)
Totally fixed. thank you!

@sl-service-account
Copy link
Author

AndreyK ProductEngine commented at 2018-10-11T11:38:38Z, updated at 2018-10-11T11:41:15Z

@whirly
Thanks for testing. Should be already in EEP build 520475 or above.
P.S. should also make texture and settings pickers slightly faster.

@sl-service-account
Copy link
Author

Whirly Fizzle commented at 2018-10-12T21:59:44Z

Confirmed fixed in new public build: Second Life Project EEP 5.1.10.520475 (64bit)

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

No branches or pull requests

1 participant