add tracing for performance profiling

This commit is contained in:
2026-06-05 16:38:36 +02:00
parent 17e9913c98
commit abc261c03a
13 changed files with 474 additions and 0 deletions

View File

@@ -28,6 +28,7 @@
#include "ShipIdentityComponent.h"
#include "StationBodyComponent.h"
#include "ThreatResponseBehaviorComponent.h"
#include "tracing.h"
// ---------------------------------------------------------------------------
// Shared helpers for repair targeting
@@ -72,6 +73,7 @@ static std::vector<RepairableInfo> buildRepairables(EntityAdmin& admin)
void AiSystem::tickHomeReturnBehavior(EntityAdmin& admin)
{
TRACE();
admin.forEach<HomeReturnBehaviorComponent, HealthComponent, MovementIntentComponent>(
[](entt::entity /*e*/, const HomeReturnBehaviorComponent& homeReturnBehavior,
const HealthComponent& h, MovementIntentComponent& intent)
@@ -92,6 +94,7 @@ void AiSystem::tickHomeReturnBehavior(EntityAdmin& admin)
void AiSystem::tickThreatResponseBehavior(EntityAdmin& admin, const BuildingSystem& buildings)
{
TRACE();
// Snapshot all combatant entities for target acquisition.
struct CombatantInfo
{
@@ -219,6 +222,7 @@ void AiSystem::tickThreatResponseBehavior(EntityAdmin& admin, const BuildingSyst
void AiSystem::tickRepairBehavior(EntityAdmin& admin, BuildingSystem& buildings)
{
TRACE();
std::vector<RepairableInfo> repairables = buildRepairables(admin);
// Snapshot enemy ships for threat detection.
@@ -327,6 +331,7 @@ void AiSystem::tickRepairBehavior(EntityAdmin& admin, BuildingSystem& buildings)
void AiSystem::tickRepairTools(EntityAdmin& admin)
{
TRACE();
const std::vector<RepairableInfo> repairables = buildRepairables(admin);
admin.forEach<RepairToolComponent, ModuleOwnerComponent>(
@@ -389,6 +394,7 @@ void AiSystem::tickRepairTools(EntityAdmin& admin)
void AiSystem::tickSalvageBehavior(EntityAdmin& admin, ScrapSystem& scraps,
BuildingSystem& buildings)
{
TRACE();
// Snapshot enemy ships for threat detection.
struct EnemyShipPos
{

View File

@@ -8,6 +8,7 @@
#include "SensorRangeComponent.h"
#include "ShipIdentityComponent.h"
#include "ThreatResponseBehaviorComponent.h"
#include "tracing.h"
#include "WeaponComponent.h"
static constexpr Tick kWeaponImpactDelayTicks = 5;
@@ -22,6 +23,7 @@ void CombatSystem::tick(Tick currentTick,
BuildingSystem& /*buildings*/,
std::vector<FireEvent>& outFireEvents)
{
TRACE();
// All weapons (ships and stations) are child entities linked via ModuleOwnerComponent.
admin.forEach<WeaponComponent, ModuleOwnerComponent>(
[&](entt::entity /*e*/, WeaponComponent& weapon, const ModuleOwnerComponent& owner)
@@ -124,6 +126,7 @@ void CombatSystem::resolveWeapon(
void CombatSystem::applyPendingDamage(Tick currentTick, EntityAdmin& admin)
{
TRACE();
std::vector<PendingDamage>::iterator it = m_pendingDamage.begin();
while (it != m_pendingDamage.end())
{

View File

@@ -9,6 +9,7 @@
#include "EntityAdmin.h"
#include "FacingComponent.h"
#include "PositionComponent.h"
#include "tracing.h"
static float wrapAngle(float a)
{
@@ -21,6 +22,7 @@ static float wrapAngle(float a)
void DynamicBodySystem::tick(EntityAdmin& admin)
{
TRACE();
admin.forEach<PositionComponent, FacingComponent, DynamicBodyComponent>(
[](entt::entity /*e*/, PositionComponent& pos, FacingComponent& facing,
DynamicBodyComponent& body)
@@ -49,3 +51,4 @@ void DynamicBodySystem::tick(EntityAdmin& admin)
body.angularAcceleration = 0.0f;
});
}

View File

@@ -10,6 +10,7 @@
#include "FacingComponent.h"
#include "MovementIntentComponent.h"
#include "PositionComponent.h"
#include "tracing.h"
static float wrapAngle(float a)
{
@@ -22,6 +23,7 @@ static float wrapAngle(float a)
void MovementIntentSystem::tick(EntityAdmin& admin)
{
TRACE();
admin.forEach<PositionComponent, FacingComponent, DynamicBodyComponent,
MovementIntentComponent>(
[](entt::entity /*e*/, const PositionComponent& pos, const FacingComponent& facing,
@@ -115,3 +117,4 @@ void MovementIntentSystem::tick(EntityAdmin& admin)
body.linearAcceleration = mainDelta + maneuverDelta;
});
}

View File

@@ -4,6 +4,7 @@
#include "EntityAdmin.h"
#include "PositionComponent.h"
#include "ScrapDataComponent.h"
#include "tracing.h"
ScrapSystem::ScrapSystem(EntityAdmin& admin)
: m_admin(admin)
@@ -17,6 +18,7 @@ entt::entity ScrapSystem::spawn(QVector2D position, int amount, Tick despawnAt)
void ScrapSystem::tickDespawn(Tick currentTick)
{
TRACE();
std::vector<entt::entity> expired;
m_admin.forEach<DespawnAtComponent>(
[&expired, currentTick](entt::entity e, DespawnAtComponent& d)
@@ -54,3 +56,4 @@ std::vector<ScrapInfo> ScrapSystem::allScrapInfo() const
});
return result;
}

View File

@@ -20,6 +20,7 @@
#include "SensorRangeComponent.h"
#include "Tick.h"
#include "ThreatResponseBehaviorComponent.h"
#include "tracing.h"
#include "WeaponComponent.h"
ShipSystem::ShipSystem(const GameConfig& config, EntityAdmin& admin)
@@ -334,6 +335,7 @@ void ShipSystem::despawn(entt::entity entity)
void ShipSystem::clearMovementIntents()
{
TRACE();
m_admin.forEach<MovementIntentComponent>(
[](entt::entity /*e*/, MovementIntentComponent& i)
{
@@ -348,6 +350,7 @@ void ShipSystem::setRallyPoint(QVector2D point)
void ShipSystem::triggerRallyDeparture()
{
TRACE();
std::vector<entt::entity> toRemove;
m_admin.forEach<RallyBehaviorComponent, FactionComponent>(
[&toRemove](entt::entity e, const RallyBehaviorComponent& /*rb*/,