AllianceDB  0.0.1
AllianceDB is an open-source suite, including benchmarks and libs for evaluating and improving stream operation algorithms on modern hardwares.
Collaboration diagram for The ThreadPerf tool:

Modules

 Initialize
 
 Get the perf results
 

Classes

class  INTELLI::ThreadPerf
 The all-in-on perf class for thread. More...
 

Typedefs

typedef enum INTELLI::perfTrace INTELLI::perfIdx
 

Enumerations

enum  INTELLI::perfTrace {
  TRACE_RUNNING_TIME = -1 , COUNT_SW_CPU_CLOCK = 0 , COUNT_SW_TASK_CLOCK = 1 , COUNT_SW_CONTEXT_SWITCHES = 2 ,
  COUNT_SW_CPU_MIGRATIONS = 3 , COUNT_SW_PAGE_FAULTS = 4 , COUNT_SW_PAGE_FAULTS_MIN = 5 , COUNT_SW_PAGE_FAULTS_MAJ = 6 ,
  COUNT_HW_CPU_CYCLES = 7 , COUNT_HW_INSTRUCTIONS = 8 , COUNT_HW_CACHE_REFERENCES = 9 , COUNT_HW_CACHE_MISSES = 10 ,
  COUNT_HW_BRANCH_INSTRUCTIONS = 11 , COUNT_HW_BRANCH_MISSES = 12 , COUNT_HW_BUS_CYCLES = 13 , COUNT_HW_CACHE_L1D_LOADS = 14 ,
  COUNT_HW_CACHE_L1D_LOADS_MISSES = 15 , COUNT_HW_CACHE_L1D_STORES = 16 , COUNT_HW_CACHE_L1D_STORES_MISSES = 17 , COUNT_HW_CACHE_L1D_PREFETCHES = 18 ,
  COUNT_HW_CACHE_L1I_LOADS = 19 , COUNT_HW_CACHE_L1I_LOADS_MISSES = 20 , COUNT_HW_CACHE_LL_LOADS = 21 , COUNT_HW_CACHE_LL_LOADS_MISSES = 22 ,
  COUNT_HW_CACHE_LL_STORES = 23 , COUNT_HW_CACHE_LL_STORES_MISSES = 24 , COUNT_HW_CACHE_DTLB_LOADS = 25 , COUNT_HW_CACHE_DTLB_LOADS_MISSES = 26 ,
  COUNT_HW_CACHE_DTLB_STORES = 27 , COUNT_HW_CACHE_DTLB_STORES_MISSES = 28 , COUNT_HW_CACHE_ITLB_LOADS = 29 , COUNT_HW_CACHE_ITLB_LOADS_MISSES = 30 ,
  COUNT_HW_CACHE_BPU_LOADS = 31 , COUNT_HW_CACHE_BPU_LOADS_MISSES = 32
}
 The valid idx for perf. More...
 

Functions

 INTELLI::PerfTool::PerfTool (pid_t pid, int cpu)
 
uint64_t INTELLI::PerfTool::readPerf (size_t ch)
 
int INTELLI::PerfTool::startPerf (size_t ch)
 
int INTELLI::PerfTool::stopPerf (size_t ch)
 
bool INTELLI::PerfTool::isValidChannel (size_t ch)
 
 INTELLI::PerfPair::PerfPair (int _ref, string _name)
 The construction function. More...
 
string INTELLI::ThreadPerf::getChValueAsString (size_t idx)
 
uint64_t INTELLI::ThreadPerf::getRunTime (void)
 

Variables

int INTELLI::PerfEntry::fds
 
bool INTELLI::PerfEntry::addressable
 
uint64_t INTELLI::PerfEntry::prevVale
 
int INTELLI::PerfPair::ref
 
std::string INTELLI::PerfPair::name
 
uint64_t INTELLI::PerfPair::record
 
PerfToolPtr INTELLI::ThreadPerf::myTool
 
vector< PerfPairINTELLI::ThreadPerf::pairs
 
struct timeval ts INTELLI::ThreadPerf::te
 
uint64_t INTELLI::ThreadPerf::latency
 

Detailed Description

Use this tool to perf your thread in an easy way. Organized as Initialize and Get the perf results. The following is an example to use

ThreadPerf tp(-1, {PerfPair(COUNT_HW_CPU_CYCLES, "Cycles"), \
                   PerfPair(COUNT_HW_INSTRUCTIONS, "instructions")
               }
                   ); // creat a ThreadPerf with specific events
tp.start(); //start it
// run your program here
 tp.end();
 cout<<tp.headStringPrintf()<<endl;
 cout<<tp.resultStringPrintf()<<endl;
 //print the results

Enumeration Type Documentation

◆ perfTrace

The valid idx for perf.

Utils/ThreadPerf.h

Function Documentation

◆ PerfPair()

INTELLI::PerfPair::PerfPair ( int  _ref,
string  _name 
)
inline

The construction function.

Parameters
_refnumber index, one in perfTrace
_namestring index

Variable Documentation

◆ name

std::string INTELLI::PerfPair::name

The string to find pair

◆ record

uint64_t INTELLI::PerfPair::record

The read result

◆ ref

int INTELLI::PerfPair::ref

The number to find pair