Adding time keeping for dependencies tracker.
This commit is contained in:
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user