Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
B
benchmark
Project
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Chen Yisong
benchmark
Commits
0a60062b
Commit
0a60062b
authored
May 16, 2016
by
Dominic Hamon
Browse files
Options
Browse Files
Download
Plain Diff
Merge pull request #212 from ismaelJimenez/master
added option to change range multiplier
parents
360e66c1
d2103de3
Show whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
24 additions
and
5 deletions
+24
-5
benchmark_api.h
include/benchmark/benchmark_api.h
+4
-0
benchmark.cc
src/benchmark.cc
+19
-5
options_test.cc
test/options_test.cc
+1
-0
No files found.
include/benchmark/benchmark_api.h
View file @
0a60062b
...
@@ -444,6 +444,10 @@ public:
...
@@ -444,6 +444,10 @@ public:
// Threads, etc.
// Threads, etc.
Benchmark
*
Apply
(
void
(
*
func
)(
Benchmark
*
benchmark
));
Benchmark
*
Apply
(
void
(
*
func
)(
Benchmark
*
benchmark
));
// Set the range multiplier for non-dense range. If not called, the range multiplier
// kRangeMultiplier will be used.
Benchmark
*
RangeMultiplier
(
int
multiplier
);
// Set the minimum amount of time to use when running this benchmark. This
// Set the minimum amount of time to use when running this benchmark. This
// option overrides the `benchmark_min_time` flag.
// option overrides the `benchmark_min_time` flag.
Benchmark
*
MinTime
(
double
t
);
Benchmark
*
MinTime
(
double
t
);
...
...
src/benchmark.cc
View file @
0a60062b
...
@@ -287,6 +287,7 @@ struct Benchmark::Instance {
...
@@ -287,6 +287,7 @@ struct Benchmark::Instance {
bool
has_arg2
;
bool
has_arg2
;
int
arg2
;
int
arg2
;
TimeUnit
time_unit
;
TimeUnit
time_unit
;
int
range_multiplier
;
bool
use_real_time
;
bool
use_real_time
;
bool
use_manual_time
;
bool
use_manual_time
;
double
min_time
;
double
min_time
;
...
@@ -326,6 +327,7 @@ public:
...
@@ -326,6 +327,7 @@ public:
void
DenseRange
(
int
start
,
int
limit
);
void
DenseRange
(
int
start
,
int
limit
);
void
ArgPair
(
int
start
,
int
limit
);
void
ArgPair
(
int
start
,
int
limit
);
void
RangePair
(
int
lo1
,
int
hi1
,
int
lo2
,
int
hi2
);
void
RangePair
(
int
lo1
,
int
hi1
,
int
lo2
,
int
hi2
);
void
RangeMultiplier
(
int
multiplier
);
void
MinTime
(
double
n
);
void
MinTime
(
double
n
);
void
UseRealTime
();
void
UseRealTime
();
void
UseManualTime
();
void
UseManualTime
();
...
@@ -343,6 +345,7 @@ private:
...
@@ -343,6 +345,7 @@ private:
int
arg_count_
;
int
arg_count_
;
std
::
vector
<
std
::
pair
<
int
,
int
>
>
args_
;
// Args for all benchmark runs
std
::
vector
<
std
::
pair
<
int
,
int
>
>
args_
;
// Args for all benchmark runs
TimeUnit
time_unit_
;
TimeUnit
time_unit_
;
int
range_multiplier_
;
double
min_time_
;
double
min_time_
;
bool
use_real_time_
;
bool
use_real_time_
;
bool
use_manual_time_
;
bool
use_manual_time_
;
...
@@ -404,6 +407,7 @@ bool BenchmarkFamilies::FindBenchmarks(
...
@@ -404,6 +407,7 @@ bool BenchmarkFamilies::FindBenchmarks(
instance
.
has_arg2
=
family
->
arg_count_
==
2
;
instance
.
has_arg2
=
family
->
arg_count_
==
2
;
instance
.
arg2
=
args
.
second
;
instance
.
arg2
=
args
.
second
;
instance
.
time_unit
=
family
->
time_unit_
;
instance
.
time_unit
=
family
->
time_unit_
;
instance
.
range_multiplier
=
family
->
range_multiplier_
;
instance
.
min_time
=
family
->
min_time_
;
instance
.
min_time
=
family
->
min_time_
;
instance
.
use_real_time
=
family
->
use_real_time_
;
instance
.
use_real_time
=
family
->
use_real_time_
;
instance
.
use_manual_time
=
family
->
use_manual_time_
;
instance
.
use_manual_time
=
family
->
use_manual_time_
;
...
@@ -442,8 +446,8 @@ bool BenchmarkFamilies::FindBenchmarks(
...
@@ -442,8 +446,8 @@ bool BenchmarkFamilies::FindBenchmarks(
BenchmarkImp
::
BenchmarkImp
(
const
char
*
name
)
BenchmarkImp
::
BenchmarkImp
(
const
char
*
name
)
:
name_
(
name
),
arg_count_
(
-
1
),
time_unit_
(
kNanosecond
),
:
name_
(
name
),
arg_count_
(
-
1
),
time_unit_
(
kNanosecond
),
min_time_
(
0.0
),
use_real_time_
(
false
),
range_multiplier_
(
kRangeMultiplier
),
min_time_
(
0.0
),
use_manual_time_
(
false
)
{
use_
real_time_
(
false
),
use_
manual_time_
(
false
)
{
}
}
BenchmarkImp
::~
BenchmarkImp
()
{
BenchmarkImp
::~
BenchmarkImp
()
{
...
@@ -463,7 +467,7 @@ void BenchmarkImp::Range(int start, int limit) {
...
@@ -463,7 +467,7 @@ void BenchmarkImp::Range(int start, int limit) {
CHECK
(
arg_count_
==
-
1
||
arg_count_
==
1
);
CHECK
(
arg_count_
==
-
1
||
arg_count_
==
1
);
arg_count_
=
1
;
arg_count_
=
1
;
std
::
vector
<
int
>
arglist
;
std
::
vector
<
int
>
arglist
;
AddRange
(
&
arglist
,
start
,
limit
,
kRangeMultiplier
);
AddRange
(
&
arglist
,
start
,
limit
,
range_multiplier_
);
for
(
int
i
:
arglist
)
{
for
(
int
i
:
arglist
)
{
args_
.
emplace_back
(
i
,
-
1
);
args_
.
emplace_back
(
i
,
-
1
);
...
@@ -490,8 +494,8 @@ void BenchmarkImp::RangePair(int lo1, int hi1, int lo2, int hi2) {
...
@@ -490,8 +494,8 @@ void BenchmarkImp::RangePair(int lo1, int hi1, int lo2, int hi2) {
CHECK
(
arg_count_
==
-
1
||
arg_count_
==
2
);
CHECK
(
arg_count_
==
-
1
||
arg_count_
==
2
);
arg_count_
=
2
;
arg_count_
=
2
;
std
::
vector
<
int
>
arglist1
,
arglist2
;
std
::
vector
<
int
>
arglist1
,
arglist2
;
AddRange
(
&
arglist1
,
lo1
,
hi1
,
kRangeMultiplier
);
AddRange
(
&
arglist1
,
lo1
,
hi1
,
range_multiplier_
);
AddRange
(
&
arglist2
,
lo2
,
hi2
,
kRangeMultiplier
);
AddRange
(
&
arglist2
,
lo2
,
hi2
,
range_multiplier_
);
for
(
int
i
:
arglist1
)
{
for
(
int
i
:
arglist1
)
{
for
(
int
j
:
arglist2
)
{
for
(
int
j
:
arglist2
)
{
...
@@ -500,6 +504,10 @@ void BenchmarkImp::RangePair(int lo1, int hi1, int lo2, int hi2) {
...
@@ -500,6 +504,10 @@ void BenchmarkImp::RangePair(int lo1, int hi1, int lo2, int hi2) {
}
}
}
}
void
BenchmarkImp
::
RangeMultiplier
(
int
multiplier
)
{
range_multiplier_
=
multiplier
;
}
void
BenchmarkImp
::
MinTime
(
double
t
)
{
void
BenchmarkImp
::
MinTime
(
double
t
)
{
CHECK
(
t
>
0.0
);
CHECK
(
t
>
0.0
);
min_time_
=
t
;
min_time_
=
t
;
...
@@ -539,6 +547,7 @@ void BenchmarkImp::SetName(const char* name) {
...
@@ -539,6 +547,7 @@ void BenchmarkImp::SetName(const char* name) {
void
BenchmarkImp
::
AddRange
(
std
::
vector
<
int
>*
dst
,
int
lo
,
int
hi
,
int
mult
)
{
void
BenchmarkImp
::
AddRange
(
std
::
vector
<
int
>*
dst
,
int
lo
,
int
hi
,
int
mult
)
{
CHECK_GE
(
lo
,
0
);
CHECK_GE
(
lo
,
0
);
CHECK_GE
(
hi
,
lo
);
CHECK_GE
(
hi
,
lo
);
CHECK_GE
(
mult
,
2
);
// Add "lo"
// Add "lo"
dst
->
push_back
(
lo
);
dst
->
push_back
(
lo
);
...
@@ -607,6 +616,11 @@ Benchmark* Benchmark::Apply(void (*custom_arguments)(Benchmark* benchmark)) {
...
@@ -607,6 +616,11 @@ Benchmark* Benchmark::Apply(void (*custom_arguments)(Benchmark* benchmark)) {
return
this
;
return
this
;
}
}
Benchmark
*
Benchmark
::
RangeMultiplier
(
int
multiplier
)
{
imp_
->
RangeMultiplier
(
multiplier
);
return
this
;
}
Benchmark
*
Benchmark
::
MinTime
(
double
t
)
{
Benchmark
*
Benchmark
::
MinTime
(
double
t
)
{
imp_
->
MinTime
(
t
);
imp_
->
MinTime
(
t
);
return
this
;
return
this
;
...
...
test/options_test.cc
View file @
0a60062b
...
@@ -23,6 +23,7 @@ BENCHMARK(BM_basic_slow)->Arg(10)->Unit(benchmark::kNanosecond);
...
@@ -23,6 +23,7 @@ BENCHMARK(BM_basic_slow)->Arg(10)->Unit(benchmark::kNanosecond);
BENCHMARK
(
BM_basic_slow
)
->
Arg
(
100
)
->
Unit
(
benchmark
::
kMicrosecond
);
BENCHMARK
(
BM_basic_slow
)
->
Arg
(
100
)
->
Unit
(
benchmark
::
kMicrosecond
);
BENCHMARK
(
BM_basic_slow
)
->
Arg
(
1000
)
->
Unit
(
benchmark
::
kMillisecond
);
BENCHMARK
(
BM_basic_slow
)
->
Arg
(
1000
)
->
Unit
(
benchmark
::
kMillisecond
);
BENCHMARK
(
BM_basic
)
->
Range
(
1
,
8
);
BENCHMARK
(
BM_basic
)
->
Range
(
1
,
8
);
BENCHMARK
(
BM_basic
)
->
RangeMultiplier
(
2
)
->
Range
(
1
,
8
);
BENCHMARK
(
BM_basic
)
->
DenseRange
(
10
,
15
);
BENCHMARK
(
BM_basic
)
->
DenseRange
(
10
,
15
);
BENCHMARK
(
BM_basic
)
->
ArgPair
(
42
,
42
);
BENCHMARK
(
BM_basic
)
->
ArgPair
(
42
,
42
);
BENCHMARK
(
BM_basic
)
->
RangePair
(
64
,
512
,
64
,
512
);
BENCHMARK
(
BM_basic
)
->
RangePair
(
64
,
512
,
64
,
512
);
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment