| Developers > Basic Performance | ||
| quaxi | ||
Member since: 2006-04-28 Posts: 3154 | I did some testing with load performance of SimPE. Basically I ran through the FileTable, opened al package files found, and try to process the data stored in all the resources in those .package files.
I did only load resources that are handled by the built in wrappers (not the plugin wrappers like PJSE...). The attached file shows the load time (single thread on a amd x2 3GHz, 1 GB RAM) for each processed file. Also the load time per resource type (like STR#, GMDC...) for each package (first sorted by total time, and thne sorted by the avarage time it took SimPE to load that resource Type).
The interesting part is the summary at the end of the File, which shows how many time SimPE spent reading which resource type. Turns out a huge bottleneck is the 3IDR Wrapper (10 of 27 mi, that is 33%). performance.txt (158.74 kb, 1098 downloads) Perfromance Data loading all Resources available in the FileTable | |
| Theo | ||
Member since: 2006-01-07 From: 14.918246, -23.514862 Posts: 75 | That bottleneck is due to the instantiation of the SkinChain object, which in its turn relies on the DXT decoding function to fetch the texture image.
Since the SkinChain object is relevant only when inspecting 3IDR resources that pertain to a sim's clothing definition, and we have a specialized clothing editor ;), I think we could remove the SkinChain instantiation in the 3IDR wrapper, and add the editor to the sim editor panel.
If you think that's doable, I'll update the clothing editor by completing the clothing category enumeration (thanks to dizzy) | |
| quaxi | ||
Member since: 2006-04-28 Posts: 3154 | Hm, looks like the bottlenek was something else.
When loading the 3IDR resources, the wrapper was checking if the Descriptors loaded within the 3IDR are stored in the current package, which issued a package.FindResource call for each item. Since this is a linear search, the worst case means, that the loaded decriptor is compared to all descriptors found in the package.
Removing that part did in fact help, as loading the 3IDR files takes 40s (instead of 11min). I will check the SkinChain instantiation as you suggested, maybe that will further decrease the loading.
Theo wrote: Since the SkinChain object is relevant only when inspecting 3IDR resources that pertain to a sim's clothing definition, and we have a specialized clothing editor ;), I think we could remove the SkinChain instantiation in the 3IDR wrapper, and add the editor to the sim editor panel. Sounds like a great Idea. I will remove the init code, if that'll help you.
| |
Member Controls
| Developers > Basic Performance | ||
| quaxi | ||
Member since: 2006-04-28 Posts: 3154 | ||
| Theo | ||
Member since: 2006-01-07 From: 14.918246, -23.514862 Posts: 75 | ||
| quaxi | ||
Member since: 2006-04-28 Posts: 3154 | ||
viewthread, 0, 0, Basic-Performance