Geoff the Medio wrote:Apparently it spends a disturbingly large amount of time in Condition::PlanetType::TargetInvariant?
Where did you get that from?
From the amount of function calls, the call tree summary and the caller callee summary the 'FleetFromObject(class TemporaryPtr<class UniverseObject const >)' with a whooping sample percentage of 96.5% seems to be the far worst offender.
Resident code gremlin
Attached patches are released under GPL 2.0 or later.
Git author: Marcel Metz
Both the "Function Summary" and "CallTreeSummary" files, sorted by Inclusive Samples, have Function Name "Condition::PlanetType::TargetInvariant(void)const" at the top.
What the difference is between inclusive and exclusive samples, I don't know.
Then it's probably a symbol lookup error. I doubt it's actually spending about 92% of its time within functions called from within PlanetType::TargetInvariant. Although if it is, it's a strong case for result caching.