aboutsummaryrefslogtreecommitdiff
path: root/utils/gen_adldata/measurer.h
diff options
context:
space:
mode:
Diffstat (limited to 'utils/gen_adldata/measurer.h')
-rw-r--r--utils/gen_adldata/measurer.h20
1 files changed, 10 insertions, 10 deletions
diff --git a/utils/gen_adldata/measurer.h b/utils/gen_adldata/measurer.h
index 63475ca..e521451 100644
--- a/utils/gen_adldata/measurer.h
+++ b/utils/gen_adldata/measurer.h
@@ -6,6 +6,7 @@
#include <mutex>
#include <condition_variable>
#include <thread>
+#include <array>
#include "progs_cache.h"
@@ -54,17 +55,14 @@ private:
struct MeasureThreaded
{
- typedef std::map<ins, DurationInfo> DurationInfoCache;
+ typedef std::array<int_fast32_t, 10> OperatorsKey;
+ typedef std::map<OperatorsKey, DurationInfo> DurationInfoCacheX;
- MeasureThreaded() :
- m_semaphore(int(std::thread::hardware_concurrency()) * 2),
- m_done(0),
- m_cache_matches(0)
- {}
+ MeasureThreaded();
Semaphore m_semaphore;
std::mutex m_durationInfo_mx;
- DurationInfoCache m_durationInfo;
+ DurationInfoCacheX m_durationInfo;
std::atomic_bool m_delete_tail;
size_t m_total = 0;
std::atomic<size_t> m_done;
@@ -84,7 +82,8 @@ struct MeasureThreaded
m_work.join();
}
MeasureThreaded *myself;
- std::map<ins, std::pair<size_t, std::set<std::string> > >::const_iterator i;
+ BanksDump *bd;
+ BanksDump::InstrumentEntry *bd_ins;
std::thread m_work;
std::atomic_bool m_works;
@@ -96,11 +95,12 @@ struct MeasureThreaded
void printProgress();
void printFinal();
- void run(InstrumentsData::const_iterator i);
+
+ void run(BanksDump &bd, BanksDump::InstrumentEntry &e);
void waitAll();
};
class OPLChipBase;
-extern DurationInfo MeasureDurations(const ins &in, OPLChipBase *chip);
+extern DurationInfo MeasureDurations(const BanksDump &db, const BanksDump::InstrumentEntry &ins, OPLChipBase *chip);
#endif // MEASURER_H