Adding time keeping for dependencies tracker.

This commit is contained in:
Iron Prando da Silva
2022-03-08 08:07:17 +01:00
parent 8ed42d62f2
commit c2508a6681

View File

@@ -35,26 +35,49 @@
#include "phasedependenciestracker.h"
#include <chrono>
#include <iostream>
void
PhaseDependenciesTracker::calculateDependencies(TraceDB& tdb, std::vector<QString>& commands) {
auto deviceConfig = ConfigurationFactory::make(tdb);
using std::chrono::high_resolution_clock;
using std::chrono::duration_cast;
using std::chrono::duration;
using std::chrono::microseconds;
auto deviceInstantiationTimeStart = high_resolution_clock::now();
auto deviceConfig = ConfigurationFactory::make(tdb);
auto deviceInstantiationTimeEnd = high_resolution_clock::now();
auto deviceInstantiationTimeDuration = duration_cast<microseconds>(deviceInstantiationTimeEnd - deviceInstantiationTimeStart);
mBeginTransaction(tdb);
mDropTable(tdb);
if (commands.size() > 0) {
auto& phases = mGetFilteredPhases(deviceConfig, tdb, commands);
auto phasesLoadingTimeStart = high_resolution_clock::now();
auto& phases = mGetFilteredPhases(deviceConfig, tdb, commands);
auto phasesLoadingTimeEnd = high_resolution_clock::now();
auto phasesLoadingTimeDuration = duration_cast<microseconds>(phasesLoadingTimeEnd - phasesLoadingTimeStart);
if (phases.size() != 0) {
auto& entries = mCalculateDependencies(deviceConfig, phases, commands);
auto dependenciesCalcTimeStart = high_resolution_clock::now();
auto& entries = mCalculateDependencies(deviceConfig, phases, commands);
auto dependenciesCalcTimeEnd = high_resolution_clock::now();
auto dependenciesCalcTimeDuration = duration_cast<microseconds>(dependenciesCalcTimeEnd - dependenciesCalcTimeStart);
if (entries.size() > 0) {
mCreateTable(tdb);
}
mInsertIntoTable(tdb, entries);
std::cout << "PhaseDependenciesTracker times (us):" << std::endl
<< "\tDevice instantiation: " << deviceInstantiationTimeDuration.count() << std::endl
<< "\tPhase loading: " << phasesLoadingTimeDuration.count() << std::endl
<< "\tDependencies calculation: " << dependenciesCalcTimeDuration.count() << std::endl;
} else {
// TODO - not sure if necessary. Still, a possibility
// mRollbackChanges(tdb);