Ok, I deleted it from all my actors components…
I’m using the tick function in a few places only.
I only use it in five components
And three actors who have extremely simple movement.
The code in all cases is a few lines… more or less like this:
void AMill::Tick(float DeltaTime)
{
Super::Tick(DeltaTime);
if (FlipFlop)
{
SetActorLocation
(
GetNextLocation(Side2, DeltaTime),
true,
nullptr,
ETeleportType::None
);
FlipFlop = !(Distance<=Tolerance);
}
else
{
SetActorLocation
(
GetNextLocation(Side1, DeltaTime),
true,
nullptr,
ETeleportType::None
);
FlipFlop = Distance<=Tolerance;
}
}
After disabling the tick on the components, some calls were still counted
I think it’s because the weapons also rotate… they have a rotational movement component… I guess it also uses the tick function.
The only way I could get the motion to look continuous and fluid was to calculate the position at every tick… but I’m willing to not use that actor if it compromises performance…
Anyway I’ve been doing some testing… since my level is so small and I have so few things it’s very easy to delete things and see what happens very quickly.
-First I deleted all the moving actors. FPS only improves a very small bit (from 50FPS to 55FPS or so)
Then I deleted the eight AI Pawns and gained more or less 5FPS
Then I deleted other static actors but they had Dynamic material and they also used the Tick() function… I think this was an explosive mix because with them I gained about 10FPS
Finally i deleted the rest, some static meshes with some emissive colors…
In total I managed to recover about 25 or 30 FPS (from 50 to 80 more or less)
But the level is completely empty now…
Even with the level completely empty there are some strange gaps in FPS.
I saw that the clouds were jumping… they were not moving continuously.
Then I did another test.
The empty world also causes FPS drops.
And for some strange reason at the end of the list appears a Niagara system from the explosion of a projectile… but I am totally sure, the world was empty.
Maybe they are delegate. i have a lot of delegates… if the engine handle delegates as threads then it can be… Otherwise, they are not mine, maybe they are editor threads.
Ok, I’ll do it!!