Merge pull request #110 from teamfisk/PerformanceTiming
Performance timing
This commit is contained in:
@@ -0,0 +1,25 @@
|
||||
#ifndef PerformanceTimer_h__
|
||||
#define PerformanceTimer_h__
|
||||
|
||||
#include "../Common.h"
|
||||
#include <boost/timer/timer.hpp>
|
||||
using boost::timer::cpu_timer;
|
||||
|
||||
class PerformanceTimer
|
||||
{
|
||||
public:
|
||||
static void StartTimer(std::string nameOfTimer);
|
||||
static void StartTimerAndStopPrevious(std::string nameOfTimer);
|
||||
static void StopTimer(std::string nameOfTimer);
|
||||
static void SetFrameNumber(int frameNumber);
|
||||
|
||||
static void ResetAllTimers();
|
||||
static void CreateExcelData();
|
||||
|
||||
private:
|
||||
static std::map<std::string, cpu_timer> timers;
|
||||
static cpu_timer m_Timer;
|
||||
static std::string currentTimerRunning;
|
||||
};
|
||||
|
||||
#endif
|
||||
@@ -6,6 +6,7 @@
|
||||
#include "System.h"
|
||||
#include "World.h"
|
||||
#include "EPause.h"
|
||||
#include "PerformanceTimer.h"
|
||||
|
||||
class SystemPipeline
|
||||
{
|
||||
@@ -72,7 +73,10 @@ public:
|
||||
|
||||
// Update
|
||||
for (auto& system : group.ImpureSystems) {
|
||||
auto className = (std::string)typeid(*system).name();
|
||||
PerformanceTimer::StartTimer(className);
|
||||
system->Update(dt);
|
||||
PerformanceTimer::StopTimer(className);
|
||||
}
|
||||
for (auto& pair : group.PureSystems) {
|
||||
const std::string& componentName = pair.first;
|
||||
@@ -83,7 +87,10 @@ public:
|
||||
}
|
||||
for (auto& component : *pool) {
|
||||
for (auto& system : systems) {
|
||||
auto className = (std::string)typeid(*system).name();
|
||||
PerformanceTimer::StartTimer(className);
|
||||
system->UpdateComponent(EntityWrapper(m_World, component.EntityID), component, dt);
|
||||
PerformanceTimer::StopTimer(className);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -106,9 +113,9 @@ private:
|
||||
std::vector<UnorderedSystems> m_OrderedSystemGroups;
|
||||
|
||||
EventRelay<SystemPipeline, Events::Pause> m_EPause;
|
||||
bool OnPause(const Events::Pause& e) {
|
||||
if (e.World == m_World) {
|
||||
m_Paused = true;
|
||||
bool OnPause(const Events::Pause& e) {
|
||||
if (e.World == m_World) {
|
||||
m_Paused = true;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -23,6 +23,7 @@
|
||||
#include "imgui/imgui.h"
|
||||
#include "TextPass.h"
|
||||
#include "Util/CommonFunctions.h"
|
||||
#include "Core/PerformanceTimer.h"
|
||||
|
||||
class Renderer : public IRenderer
|
||||
{
|
||||
|
||||
@@ -35,6 +35,9 @@
|
||||
#include "Sound/SoundManager.h"
|
||||
#include "Systems/SoundSystem.h"
|
||||
|
||||
//Performance
|
||||
#include "Core/PerformanceTimer.h"
|
||||
|
||||
class Game
|
||||
{
|
||||
public:
|
||||
|
||||
Reference in New Issue
Block a user