Advanced Chunk Processing Library 0.2.0
A comprehensive C++ library for advanced data chunking strategies and processing operations
Loading...
Searching...
No Matches
benchmark.cpp
Go to the documentation of this file.
1/**
2 * @file benchmark.cpp
3 * @brief Implementation of benchmarking utilities
4 * @author Jonathan Reich
5 * @date 2024-12-07
6 */
7
8#include "chunk.hpp"
9#include "chunk_benchmark.hpp"
10#include "chunk_strategies.hpp"
12#include <chrono>
13#include <iostream>
14#include <memory>
15#include <vector>
16
17template <typename T>
18void run_benchmark(const std::vector<T>& data) {
20
21 // Add different chunking strategies
22 benchmark.add_strategy(std::make_shared<chunk_processing::NeuralChunkingStrategy<T>>());
23 benchmark.add_strategy(std::make_shared<chunk_processing::SimilarityChunkingStrategy<T>>(0.5));
24
25 // Run benchmark and print results
26 auto results = benchmark.benchmark_chunking();
27 for (const auto& result : results) {
28 std::cout << "Strategy: " << result.strategy_name << "\n"
29 << " Execution time: " << result.execution_time_ms << " ms\n"
30 << " Memory usage: " << result.memory_usage_bytes << " bytes\n"
31 << " Average chunks: " << result.num_chunks << "\n\n";
32 }
33}
34
35int main() {
36 // Example data for benchmarking
37 std::vector<int> data(1000);
38 for (size_t i = 0; i < data.size(); ++i) {
39 data[i] = static_cast<int>(i % 10);
40 }
41
42 std::cout << "Running benchmark with integer data...\n";
43 run_benchmark(data);
44
45 return 0;
46}
void run_benchmark(const std::vector< T > &data)
Definition benchmark.cpp:18
int main()
Definition benchmark.cpp:35
Performance benchmarking tools for chunk processing.
Defines various strategies for chunking data based on different criteria.
std::vector< BenchmarkResult > benchmark_chunking()
void add_strategy(std::shared_ptr< chunk_processing::ChunkStrategy< T > > strategy)