Advanced Chunk Processing Library 0.2.0
A comprehensive C++ library for advanced data chunking strategies and processing operations
Loading...
Searching...
No Matches
chunk_benchmark::ChunkBenchmark< T > Class Template Reference

#include <chunk_benchmark.hpp>

+ Collaboration diagram for chunk_benchmark::ChunkBenchmark< T >:

Public Member Functions

 ChunkBenchmark (const std::vector< T > &data, size_t num_iterations=100)
 
void add_strategy (std::shared_ptr< chunk_processing::ChunkStrategy< T > > strategy)
 
std::vector< BenchmarkResultbenchmark_chunking ()
 
void save_results (const std::string &filename) const
 

Private Attributes

size_t iterations
 
std::vector< std::shared_ptr< chunk_processing::ChunkStrategy< T > > > strategies
 
std::vector< T > test_data
 

Detailed Description

template<typename T>
class chunk_benchmark::ChunkBenchmark< T >

Definition at line 26 of file chunk_benchmark.hpp.

Constructor & Destructor Documentation

◆ ChunkBenchmark()

template<typename T >
chunk_benchmark::ChunkBenchmark< T >::ChunkBenchmark ( const std::vector< T > &  data,
size_t  num_iterations = 100 
)
inlineexplicit

Definition at line 33 of file chunk_benchmark.hpp.

34 : test_data(data), iterations(num_iterations) {}

Member Function Documentation

◆ add_strategy()

template<typename T >
void chunk_benchmark::ChunkBenchmark< T >::add_strategy ( std::shared_ptr< chunk_processing::ChunkStrategy< T > >  strategy)
inline

Definition at line 36 of file chunk_benchmark.hpp.

36 {
37 strategies.push_back(strategy);
38 }
std::vector< std::shared_ptr< chunk_processing::ChunkStrategy< T > > > strategies

References chunk_benchmark::ChunkBenchmark< T >::strategies.

Referenced by run_benchmark().

◆ benchmark_chunking()

template<typename T >
std::vector< BenchmarkResult > chunk_benchmark::ChunkBenchmark< T >::benchmark_chunking ( )
inline

Definition at line 40 of file chunk_benchmark.hpp.

40 {
41 std::vector<BenchmarkResult> results;
42 for (const auto& strategy : strategies) {
43 auto start = std::chrono::high_resolution_clock::now();
44
45 size_t total_chunks = 0;
46 for (size_t i = 0; i < iterations; ++i) {
47 auto chunks = strategy->apply(test_data);
48 total_chunks += chunks.size();
49 }
50
51 auto end = std::chrono::high_resolution_clock::now();
52 auto duration = std::chrono::duration_cast<std::chrono::milliseconds>(end - start);
53
54 results.push_back({static_cast<double>(duration.count()), sizeof(T) * test_data.size(),
55 total_chunks / iterations, "Strategy"});
56 }
57 return results;
58 }

References chunk_benchmark::ChunkBenchmark< T >::iterations, chunk_benchmark::ChunkBenchmark< T >::strategies, and chunk_benchmark::ChunkBenchmark< T >::test_data.

Referenced by run_benchmark().

◆ save_results()

template<typename T >
void chunk_benchmark::ChunkBenchmark< T >::save_results ( const std::string &  filename) const
inline

Definition at line 60 of file chunk_benchmark.hpp.

60 {
61 // Implementation for saving results to file
62 }

Member Data Documentation

◆ iterations

template<typename T >
size_t chunk_benchmark::ChunkBenchmark< T >::iterations
private

◆ strategies

template<typename T >
std::vector<std::shared_ptr<chunk_processing::ChunkStrategy<T> > > chunk_benchmark::ChunkBenchmark< T >::strategies
private

◆ test_data

template<typename T >
std::vector<T> chunk_benchmark::ChunkBenchmark< T >::test_data
private

The documentation for this class was generated from the following file: