9#ifndef INCLUDED_BSLMT_THROUGHPUTBENCHMARKRESULT
10#define INCLUDED_BSLMT_THROUGHPUTBENCHMARKRESULT
113#include <bslscm_version.h>
124#include <bsl_vector.h>
129class ThroughputBenchmarkResult_TestUtil;
168 int threadGroupIndex)
const;
292 double getValue(
int threadGroupIndex,
294 int sampleIndex)
const;
300 void getMedian(
double *median,
int threadGroupIndex)
const;
310 int threadGroupIndex)
const;
321 int threadGroupIndex)
const;
336 int threadGroupIndex)
const;
401 d_vecThroughputs[sampleIndex][threadGroupIndex][threadIndex] = value;
409 return static_cast<int>(d_vecThroughputs.size());
418 return static_cast<int>(d_vecThroughputs[0].size());
427 return static_cast<int>(d_vecThroughputs[0][threadGroupIndex].size());
439 for (
int i = 0; i < nThreadGroups; ++i) {
449 int sampleIndex)
const
458 return d_vecThroughputs[sampleIndex][threadGroupIndex][threadIndex];
465 return d_vecThroughputs.get_allocator().mechanism();
485 return d_data.d_vecThroughputs;
Definition bslstl_vector.h:1025
Definition bslma_allocator.h:457
Definition bslmf_movableref.h:751
Definition bslmt_throughputbenchmarkresult.h:355
ThroughputBenchmarkResult_TestUtil(ThroughputBenchmarkResult &data)
Definition bslmt_throughputbenchmarkresult.h:474
bsl::vector< bsl::vector< bsl::vector< double > > > & throughputs()
Definition bslmt_throughputbenchmarkresult.h:483
~ThroughputBenchmarkResult_TestUtil()=default
Destroy this object.
Definition bslmt_throughputbenchmarkresult.h:140
int numThreadGroups() const
Return the number of thread groups.
Definition bslmt_throughputbenchmarkresult.h:413
double getValue(int threadGroupIndex, int threadIndex, int sampleIndex) const
Definition bslmt_throughputbenchmarkresult.h:447
ThroughputBenchmarkResult(bslma::Allocator *basicAllocator=0)
void getPercentile(double *percentile, double percentage, int threadGroupIndex) const
BSLMF_NESTED_TRAIT_DECLARATION(ThroughputBenchmarkResult, bslma::UsesBslmaAllocator)
ThroughputBenchmarkResult(const ThroughputBenchmarkResult &original, bslma::Allocator *basicAllocator=0)
void getMedian(double *median, int threadGroupIndex) const
void setThroughput(int threadGroupIndex, int threadIndex, int sampleIndex, double value)
Definition bslmt_throughputbenchmarkresult.h:388
ThroughputBenchmarkResult(int numSamples, const bsl::vector< int > &threadGroupSizes, bslma::Allocator *basicAllocator=0)
int totalNumThreads() const
Return the total number of threads.
Definition bslmt_throughputbenchmarkresult.h:431
bslma::Allocator * allocator() const
Return the allocator used by this object.
Definition bslmt_throughputbenchmarkresult.h:463
bsls::Types::Int64 Int64
Definition bslmt_throughputbenchmarkresult.h:144
ThroughputBenchmarkResult(bslmf::MovableRef< ThroughputBenchmarkResult > original) BSLS_KEYWORD_NOEXCEPT
void getPercentiles(bsl::vector< double > *percentiles, int threadGroupIndex) const
bsl::vector< double > DoubleVector
Definition bslmt_throughputbenchmarkresult.h:145
int numThreads(int threadGroupIndex) const
Definition bslmt_throughputbenchmarkresult.h:422
~ThroughputBenchmarkResult()=default
Destroy this object.
ThroughputBenchmarkResult & operator=(const ThroughputBenchmarkResult &rhs)
int numSamples() const
Return the number of test samples.
Definition bslmt_throughputbenchmarkresult.h:407
void getThreadPercentiles(bsl::vector< bsl::vector< double > > *percentiles, int threadGroupIndex) const
ThroughputBenchmarkResult(bslmf::MovableRef< ThroughputBenchmarkResult > original, bslma::Allocator *basicAllocator)
void initialize(int numSamples, const bsl::vector< int > &threadGroupSizes)
ThroughputBenchmarkResult & operator=(bslmf::MovableRef< ThroughputBenchmarkResult > rhs)
#define BSLS_ASSERT(X)
Definition bsls_assert.h:1804
#define BSLS_IDENT(str)
Definition bsls_ident.h:195
#define BSLS_KEYWORD_NOEXCEPT
Definition bsls_keyword.h:632
Definition bslmt_barrier.h:344
Definition bslma_usesbslmaallocator.h:343
long long Int64
Definition bsls_types.h:132