Profile Picture

WrinkeManager.Update kind of expensive. Proposed adjustment:

Posted By dan.goyette 2 Years Ago
You don't have permission to rate!

WrinkeManager.Update kind of expensive. Proposed adjustment:

Author
Message
dan.goyette
dan.goyette
Posted 2 Years Ago
View Quick Profile
Veteran Member

Veteran Member (765 reputation)Veteran Member (765 reputation)Veteran Member (765 reputation)Veteran Member (765 reputation)Veteran Member (765 reputation)Veteran Member (765 reputation)Veteran Member (765 reputation)Veteran Member (765 reputation)Veteran Member (765 reputation)

Group: Forum Members
Last Active: Last Year
Posts: 83, Visits: 379
I was profiling my game, and found that WrinkeManager.Update was taking more time than I would have liked (about 1ms per frame). Nearly all of this time was spent looking up rules in the wrinkleRules dictionary. Given how slow dictionary lookups can be, I thought this might be a good candidate for optimization. 

I've attached a patch file that caches the lookup of the rule, too avoid the dictionary lookup every frame. This significantly improves performance for this component. Maybe this is useful to someone else, or it could be considered for inclusion in the WrinkleManager proper. Or, someone can point out a flaw in my patch if they think there's a problem with it. (I'll update this post if I find any problems.)
Attachments
WrinkeManagerPerfPatch.txt (49 views, 1.00 KB)
Victor.Soupday
Victor.Soupday
Posted 2 Years Ago
View Quick Profile
Distinguished Member

Distinguished Member (5.8K reputation)Distinguished Member (5.8K reputation)Distinguished Member (5.8K reputation)Distinguished Member (5.8K reputation)Distinguished Member (5.8K reputation)Distinguished Member (5.8K reputation)Distinguished Member (5.8K reputation)Distinguished Member (5.8K reputation)Distinguished Member (5.8K reputation)

Group: Forum Members
Last Active: Yesterday
Posts: 569, Visits: 9.0K
That's a solid improvement.

I measure a 40% improvement in (mean) script time on WrinkleManager.Update()

You can push that up to 50% faster if you inline the function call to LookupWrinkleRule.

I'll include it in the next update.



Reading This Topic

0 active, 0 guests, 0 members, 0 anonymous.
No members currently viewing this topic!