Skip to content
Snippets Groups Projects
Commit 2f2fca6d authored by Radovan Červený's avatar Radovan Červený
Browse files

simplified counter engine, added handy shortcuts for counter hints

parent 5d21d339
No related branches found
No related tags found
1 merge request!15BP_cervera3 - automatic measurements, processing
...@@ -26,17 +26,9 @@ void CounterDataFrame::hint ( unsigned frame_idx, measurements::stealth_vector < ...@@ -26,17 +26,9 @@ void CounterDataFrame::hint ( unsigned frame_idx, measurements::stealth_vector <
delta = hint.value; delta = hint.value;
break; break;
   
case CounterHint::Type::INC:
delta = 1;
break;
case CounterHint::Type::SUB: case CounterHint::Type::SUB:
delta = -hint.value; delta = -hint.value;
break; break;
case CounterHint::Type::DEC:
delta = -1;
break;
} }
   
frames[frame_idx].counter.real_counters[hint.name] += delta; frames[frame_idx].counter.real_counters[hint.name] += delta;
......
...@@ -18,7 +18,7 @@ struct CounterHint { ...@@ -18,7 +18,7 @@ struct CounterHint {
using frame_type = CounterDataFrame; using frame_type = CounterDataFrame;
using value_type = long long int; using value_type = long long int;
enum class Type { enum class Type {
ADD, SUB, INC, DEC ADD, SUB
}; };
   
measurements::stealth_string name; measurements::stealth_string name;
......
...@@ -36,4 +36,13 @@ void hint ( Hint hint ) { ...@@ -36,4 +36,13 @@ void hint ( Hint hint ) {
   
template void hint < MemoryHint > ( MemoryHint ); template void hint < MemoryHint > ( MemoryHint );
template void hint < CounterHint > ( CounterHint ); template void hint < CounterHint > ( CounterHint );
void counterInc ( const measurements::stealth_string & counterName, CounterHint::value_type val ) {
hint ( CounterHint { counterName, CounterHint::Type::ADD, val } );
}
void counterDec ( const measurements::stealth_string & counterName, CounterHint::value_type val ) {
hint ( CounterHint { counterName, CounterHint::Type::SUB, val } );
}
} }
...@@ -20,6 +20,10 @@ MeasurementResults results ( ); ...@@ -20,6 +20,10 @@ MeasurementResults results ( );
   
template < typename Hint > template < typename Hint >
void hint ( Hint hint ); void hint ( Hint hint );
// hint shortcuts
void counterInc ( const measurements::stealth_string &, CounterHint::value_type = 1 );
void counterDec ( const measurements::stealth_string &, CounterHint::value_type = 1 );
} }
   
#endif /* MEASUREMENTS_HPP_ */ #endif /* MEASUREMENTS_HPP_ */
...@@ -93,21 +93,21 @@ void MeasurementsTest::testMemoryMeasurements ( ) { ...@@ -93,21 +93,21 @@ void MeasurementsTest::testMemoryMeasurements ( ) {
void MeasurementsTest::testCounterMeasurements ( ) { void MeasurementsTest::testCounterMeasurements ( ) {
   
measurements::start ( "chunk1", measurements::Type::MAIN ); measurements::start ( "chunk1", measurements::Type::MAIN );
measurements::hint ( measurements::CounterHint { "test1", measurements::CounterHint::Type::ADD, 5 } ); measurements::counterInc ( "test1", 5 );
measurements::hint ( measurements::CounterHint { "test2", measurements::CounterHint::Type::INC, 0 } ); measurements::counterInc ( "test2" );
measurements::start ( "chunk11", measurements::Type::MAIN ); measurements::start ( "chunk11", measurements::Type::MAIN );
measurements::hint ( measurements::CounterHint { "test3", measurements::CounterHint::Type::DEC, 0 } ); measurements::counterDec ( "test3" );
measurements::start ( "chunk111", measurements::Type::MAIN ); measurements::start ( "chunk111", measurements::Type::MAIN );
measurements::hint ( measurements::CounterHint { "test1", measurements::CounterHint::Type::DEC, 0 } ); measurements::counterDec ( "test1" );
measurements::hint ( measurements::CounterHint { "test2", measurements::CounterHint::Type::SUB, 10 } ); measurements::counterDec ( "test2", 10 );
measurements::hint ( measurements::CounterHint { "test3", measurements::CounterHint::Type::DEC, 0 } ); measurements::counterDec ( "test3" );
measurements::hint ( measurements::CounterHint { "test4", measurements::CounterHint::Type::DEC, 0 } ); measurements::counterDec ( "test4" );
measurements::end ( ); measurements::end ( );
measurements::start ( "chunk112", measurements::Type::MAIN ); measurements::start ( "chunk112", measurements::Type::MAIN );
measurements::hint ( measurements::CounterHint { "test1", measurements::CounterHint::Type::DEC, 0 } ); measurements::counterDec ( "test1" );
measurements::hint ( measurements::CounterHint { "test2", measurements::CounterHint::Type::SUB, 10 } ); measurements::counterDec ( "test2", 10 );
measurements::hint ( measurements::CounterHint { "test3", measurements::CounterHint::Type::DEC, 0 } ); measurements::counterDec ( "test3" );
measurements::hint ( measurements::CounterHint { "test4", measurements::CounterHint::Type::DEC, 0 } ); measurements::counterDec ( "test4" );
measurements::end ( ); measurements::end ( );
measurements::end ( ); measurements::end ( );
measurements::end ( ); measurements::end ( );
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment