Over on SLUniverse the question was asked about whether large inventories degrade viewer performance and cause region crossing problems.
Trinity Dejavu give a pretty good explanation of how inventory size affects viewer performance here. I think basic information needed for understanding inventory was skipped over and a couple of points could have been more accurate. So, I added my 3 cents worth and I’ll post it here too.
To understand inventory one needs a basic idea of how assets, the stuff in your inventory and the regions, are handled by the Second Life™ system. I’ll keep it lite.
Everything in SL is a collection of vertices and textures/images. Primitives, cubes, spheres, etc., are just some numbers; type, size, rotation, and position. The lists of vertices for primitives are built into the viewer, so no downloads beyond the parameter values. So too the avatar is built in. All that is ever downloaded for primitives and the avatars is a list of numbers, parameters. For the avatar we call the values collection: Shape.
The mesh buildings, furniture, attachments, new avatar bodies, hands, heads, feet, and fitted mesh clothes are made up of a list of vertices and materials; the texture (diffuse), normal map (image file), and specular map (image file) that stuff has to be downloaded. All the data making up these things are stored in the asset system.
When we upload mesh things or stick a collection of prims together the asset servers record all this information and assign it an ID number (UUID). The UUID is attached to the entry in our inventory. Our inventory is a list of names we see that has a UUID attached that we seldom see. Our inventory entries have other information and attributes the SL system needs to handle permissions, track creator and owner, etc.
Outfits use pointers to the real inventory items, a pointer to a pointer. For practical and performance concepts remember these links are just another entry in the inventory list. Inventory items point to something in the asset servers. Inventory LINKS point to something in the inventory servers that point to something in the asset servers. They are basically the same thing as far as our viewer is concerned.
Your inventory list is kept in the SL inventory servers. If we blow up our viewer or change from Firestorm to Singularity we can still get a copy of our inventory list from the servers. To see and use that list our viewer must download a copy of it. The time needed to download a list and arrange in the viewer’s computer memory is affected by the number of items in our inventory and how they are arranged. Also, some part of the process goes through the region servers, which is why when we are clearing inventory problems we go to a deserted region.
The SL Limits page in the wiki has a section on Inventory. From what I know by talking with Lindens in UG meetings that information is incomplete, but what is there is correct.
There is no technical limit to the size of an avatar’s inventory. Except… any folder with more than 10,000 items may not load/show all the items and loading may be slow. This year’s (2014) change to AISv3 (Agent Inventory System version 3) has improved the performance and it may be possible to load more than 10k items in a single folder. But, consider 10k per folder a practical limit.
The Lindens and some third party developers recommend keeping folders much smaller than 10k. Having 256 folders in the root My Inventory seems like a lot to me, but it is only 2.5% of what is possible. If each of those folders had 256 folders (65k) and so on, the numbers are gigantic.
The only other factor that affects inventory performance and the viewer is Calling Cards. They are less of a burden on the viewer now than they were in 2008 when I joined.
The Calling Cards require updates as avatars log in and out of SL. Some people use them. I suspect most of us ignore them. Cleaning them out can help performance and inventory load time. But, the improvement is minor. Like stop watch stuff. I don’t consider it worth my time to bother with them. I let them pile up and delete at some point.
The practical limit on inventory is all about whether you can find something and how reliable your Internet connection TO SL is. A good Internet connection is not the same thing as a good connection to SL.
On 32-bit systems and viewers there is a hard limit on available memory. Opening 2 inventory windows can initiate texture thrashing, because a copy of video memory is keep in system memory by the viewer. I’ve never gotten a clear answer on when memory for the second inventory panel clears after it is closed. I do know that once texture thrashing starts, I usually have to relog to stop it.
Clearing Cache – jacqueline trudeau points out that on occasion inventory points can get messed up. Trinity points out that often a relog will correct that problem. Any inventory or cache corruption happens much less often now and will happen even less with CDN and HTTP Pipelining coming online. Rather than clear you entire cache, try a relog and if the problem persists just clear your inventory cache/index, which is the downloaded inventory list of pointers. Beezle Warburton explains how (post) here and see Firestorm’s page: http://wiki.phoenixviewer.com/fs_missing_inventory There is no reason to throw away gigabytes of data and have to re-download it.
If you have a weak connection to SL, clearing your main cache is likely to create more problems than it solves.
Cerise points out a current glitch with Recent Items. You may see the ‘busy’ cursor when working in inventory. It never seems to go away. Open Recent Items and close it. That often solves that problem. It only solves it for the current login secession.
Inventory is much faster loading and more reliable than when I joined. Second Life keeps improving. When you hear someone say, ‘I’ve been away fro years. I’m back and nothing has changed.’ Your listening to someone that has no memory of how things used to be.