diff --git a/esdk-performance-testing/benchmarks/go/benchmark/benchmark_tests.go b/esdk-performance-testing/benchmarks/go/benchmark/benchmark_tests.go index 59a2889b0..2d52f3b45 100644 --- a/esdk-performance-testing/benchmarks/go/benchmark/benchmark_tests.go +++ b/esdk-performance-testing/benchmarks/go/benchmark/benchmark_tests.go @@ -8,6 +8,7 @@ import ( "context" "fmt" "log" + "os" "runtime" "runtime/metrics" "sort" @@ -117,8 +118,11 @@ func (b *ESDKBenchmark) runThroughputTest(dataSize int, iterations int) (*Benchm endToEndLatencies = append(endToEndLatencies, iterationDuration) totalBytes += int64(dataSize) + os.Stdout.Sync() bar.Add(1) + fmt.Println() } + fmt.Println() totalDuration := time.Since(startTime).Seconds() // Calculate metrics @@ -199,6 +203,12 @@ func (b *ESDKBenchmark) runMemoryTest(dataSize int) (*BenchmarkResult, error) { var peakHeap, peakAllocations float64 var avgHeapValues []float64 + bar := progressbar.NewOptions(MemoryTestIterations, + progressbar.OptionSetDescription("Memory test"), + progressbar.OptionShowCount(), + progressbar.OptionSetWidth(50), + ) + // Run iterations for i := 0; i < MemoryTestIterations; i++ { runtime.GC() @@ -261,9 +271,14 @@ func (b *ESDKBenchmark) runMemoryTest(dataSize int) (*BenchmarkResult, error) { } avgHeapValues = append(avgHeapValues, iterAvgHeap) - log.Printf("=== Iteration %d === Peak Heap: %.2f MB, Total Allocs: %.2f MB, Avg Heap: %.2f MB (%v, %d samples)", + log.Printf("=== Iteration %d === Peak Heap: %.2f MB, Total Allocs: %.2f MB, Avg Heap: %.2f MB (%v, %d samples)\n", i+1, iterPeakHeap, iterTotalAllocs, iterAvgHeap, operationDuration, len(continuousSamples)) + + os.Stdout.Sync() + bar.Add(1) + fmt.Println() } + fmt.Println() if len(avgHeapValues) == 0 { return nil, fmt.Errorf("all memory test iterations failed") @@ -307,6 +322,13 @@ func (b *ESDKBenchmark) runConcurrentTest(dataSize int, concurrency int, iterati var timesMutex sync.Mutex var wg sync.WaitGroup + totalOps := concurrency * iterationsPerWorker + bar := progressbar.NewOptions(totalOps, + progressbar.OptionSetDescription("Concurrent test"), + progressbar.OptionShowCount(), + progressbar.OptionSetWidth(50), + ) + errorChan := make(chan error, concurrency) startTime := time.Now() @@ -325,6 +347,9 @@ func (b *ESDKBenchmark) runConcurrentTest(dataSize int, concurrency int, iterati return } workerTimes = append(workerTimes, time.Since(iterStart).Seconds()*1000) + os.Stdout.Sync() + bar.Add(1) + fmt.Println() } timesMutex.Lock() @@ -334,6 +359,7 @@ func (b *ESDKBenchmark) runConcurrentTest(dataSize int, concurrency int, iterati } wg.Wait() + fmt.Println() totalDuration := time.Since(startTime).Seconds() // Check for errors @@ -344,7 +370,6 @@ func (b *ESDKBenchmark) runConcurrentTest(dataSize int, concurrency int, iterati } // Calculate metrics - totalOps := concurrency * iterationsPerWorker totalBytes := int64(totalOps * dataSize) sort.Float64s(allTimes) @@ -374,35 +399,39 @@ func (b *ESDKBenchmark) runConcurrentTest(dataSize int, concurrency int, iterati // === Test Orchestration === // runThroughputTests executes all throughput tests -func (b *ESDKBenchmark) runThroughputTests(dataSizes []int, iterations int) { +func (b *ESDKBenchmark) runThroughputTests(dataSizes []int, iterations int, overallBar *progressbar.ProgressBar) { log.Println("Running throughput tests...") for _, dataSize := range dataSizes { result, err := b.runThroughputTest(dataSize, iterations) if err != nil { log.Printf("Throughput test failed: %v", err) - continue + } else { + b.Results = append(b.Results, *result) + log.Printf("Throughput test completed: %.2f ops/sec", result.OpsPerSecond) } - b.Results = append(b.Results, *result) - log.Printf("Throughput test completed: %.2f ops/sec", result.OpsPerSecond) + os.Stdout.Sync() + overallBar.Add(1) } } // runMemoryTests executes all memory tests -func (b *ESDKBenchmark) runMemoryTests(dataSizes []int) { +func (b *ESDKBenchmark) runMemoryTests(dataSizes []int, overallBar *progressbar.ProgressBar) { log.Println("Running memory tests...") for _, dataSize := range dataSizes { result, err := b.runMemoryTest(dataSize) if err != nil { log.Printf("Memory test failed: %v", err) - continue + } else { + b.Results = append(b.Results, *result) + log.Printf("Memory test completed: %.2f MB peak", result.PeakMemoryMB) } - b.Results = append(b.Results, *result) - log.Printf("Memory test completed: %.2f MB peak", result.PeakMemoryMB) + os.Stdout.Sync() + overallBar.Add(1) } } // runConcurrencyTests executes all concurrency tests -func (b *ESDKBenchmark) runConcurrencyTests(dataSizes []int, concurrencyLevels []int) { +func (b *ESDKBenchmark) runConcurrencyTests(dataSizes []int, concurrencyLevels []int, overallBar *progressbar.ProgressBar) { log.Println("Running concurrency tests...") for _, dataSize := range dataSizes { for _, concurrency := range concurrencyLevels { @@ -410,10 +439,12 @@ func (b *ESDKBenchmark) runConcurrencyTests(dataSizes []int, concurrencyLevels [ result, err := b.runConcurrentTest(dataSize, concurrency, 5) if err != nil { log.Printf("Concurrent test failed: %v", err) - continue + } else { + b.Results = append(b.Results, *result) + log.Printf("Concurrent test completed: %.2f ops/sec @ %d threads", result.OpsPerSecond, concurrency) } - b.Results = append(b.Results, *result) - log.Printf("Concurrent test completed: %.2f ops/sec @ %d threads", result.OpsPerSecond, concurrency) + os.Stdout.Sync() + overallBar.Add(1) } } } @@ -429,21 +460,45 @@ func (b *ESDKBenchmark) RunAllBenchmarks() error { dataSizes = append(dataSizes, sizes...) } + // Calculate total tests for progress tracking + totalTests := 0 + if b.shouldRunTestType("throughput") { + totalTests += len(dataSizes) + } + if b.shouldRunTestType("memory") { + totalTests += len(dataSizes) + } + if b.shouldRunTestType("concurrency") { + for range dataSizes { + for _, concurrency := range b.Config.ConcurrencyLevels { + if concurrency > 1 { + totalTests++ + } + } + } + } + + overallBar := progressbar.NewOptions(totalTests, + progressbar.OptionSetDescription("Overall progress"), + progressbar.OptionShowCount(), + progressbar.OptionSetWidth(50), + ) + // Run test suites if b.shouldRunTestType("throughput") { - b.runThroughputTests(dataSizes, b.Config.Iterations.Measurement) + b.runThroughputTests(dataSizes, b.Config.Iterations.Measurement, overallBar) } else { log.Println("Skipping throughput tests (not in test_types)") } if b.shouldRunTestType("memory") { - b.runMemoryTests(dataSizes) + b.runMemoryTests(dataSizes, overallBar) } else { log.Println("Skipping memory tests (not in test_types)") } if b.shouldRunTestType("concurrency") { - b.runConcurrencyTests(dataSizes, b.Config.ConcurrencyLevels) + b.runConcurrencyTests(dataSizes, b.Config.ConcurrencyLevels, overallBar) } else { log.Println("Skipping concurrency tests (not in test_types)") } diff --git a/esdk-performance-testing/results/raw-data/go_results.json b/esdk-performance-testing/results/raw-data/go_results.json new file mode 100644 index 000000000..780322034 --- /dev/null +++ b/esdk-performance-testing/results/raw-data/go_results.json @@ -0,0 +1,852 @@ +{ + "metadata": { + "cpu_count": 12, + "go_version": "go1.23.0", + "language": "go", + "timestamp": "2025-09-05 16:35:58", + "total_memory_gb": 36, + "total_tests": 42 + }, + "results": [ + { + "test_name": "throughput", + "language": "go", + "data_size": 1024, + "concurrency": 1, + "encrypt_latency_ms": 1.0162, + "decrypt_latency_ms": 0.8278331999999999, + "end_to_end_latency_ms": 1.8448916, + "ops_per_second": 531.8429816564166, + "bytes_per_second": 544607.2132161706, + "peak_memory_mb": 0, + "memory_efficiency_ratio": 0, + "p50_latency": 1.32497189, + "p95_latency": 1.3327090910000001, + "p99_latency": 1.3333968422000002, + "timestamp": "2025-09-05 16:35:20", + "go_version": "go1.23.0", + "cpu_count": 12, + "total_memory_gb": 36 + }, + { + "test_name": "throughput", + "language": "go", + "data_size": 5120, + "concurrency": 1, + "encrypt_latency_ms": 0.7408251, + "decrypt_latency_ms": 0.6801790999999999, + "end_to_end_latency_ms": 1.4217707000000002, + "ops_per_second": 694.8364962869674, + "bytes_per_second": 3557562.8609892735, + "peak_memory_mb": 0, + "memory_efficiency_ratio": 0, + "p50_latency": 1.1099524699999999, + "p95_latency": 1.1118221929999998, + "p99_latency": 1.1119883905999999, + "timestamp": "2025-09-05 16:35:20", + "go_version": "go1.23.0", + "cpu_count": 12, + "total_memory_gb": 36 + }, + { + "test_name": "throughput", + "language": "go", + "data_size": 10240, + "concurrency": 1, + "encrypt_latency_ms": 0.7638042, + "decrypt_latency_ms": 0.7261959, + "end_to_end_latency_ms": 1.4909041000000003, + "ops_per_second": 662.3393826996953, + "bytes_per_second": 6782355.27884488, + "peak_memory_mb": 0, + "memory_efficiency_ratio": 0, + "p50_latency": 1.1728060300000003, + "p95_latency": 1.1728195570000002, + "p99_latency": 1.1728207594000002, + "timestamp": "2025-09-05 16:35:20", + "go_version": "go1.23.0", + "cpu_count": 12, + "total_memory_gb": 36 + }, + { + "test_name": "throughput", + "language": "go", + "data_size": 102400, + "concurrency": 1, + "encrypt_latency_ms": 2.3353498999999998, + "decrypt_latency_ms": 1.8948582999999999, + "end_to_end_latency_ms": 4.2330293, + "ops_per_second": 234.8453751043095, + "bytes_per_second": 24048166.410681292, + "peak_memory_mb": 0, + "memory_efficiency_ratio": 0, + "p50_latency": 3.6278913899999994, + "p95_latency": 3.6323683409999994, + "p99_latency": 3.6327662922, + "timestamp": "2025-09-05 16:35:20", + "go_version": "go1.23.0", + "cpu_count": 12, + "total_memory_gb": 36 + }, + { + "test_name": "throughput", + "language": "go", + "data_size": 512000, + "concurrency": 1, + "encrypt_latency_ms": 8.6251291, + "decrypt_latency_ms": 6.3779251, + "end_to_end_latency_ms": 15.013808299999999, + "ops_per_second": 66.42868589943195, + "bytes_per_second": 34011487.18050916, + "peak_memory_mb": 0, + "memory_efficiency_ratio": 0, + "p50_latency": 12.966553625000001, + "p95_latency": 12.9706896875, + "p99_latency": 12.971057337500001, + "timestamp": "2025-09-05 16:35:20", + "go_version": "go1.23.0", + "cpu_count": 12, + "total_memory_gb": 36 + }, + { + "test_name": "throughput", + "language": "go", + "data_size": 1048576, + "concurrency": 1, + "encrypt_latency_ms": 17.731312499999998, + "decrypt_latency_ms": 12.7465375, + "end_to_end_latency_ms": 30.499704100000002, + "ops_per_second": 32.751587839555526, + "bytes_per_second": 34342528.970449775, + "peak_memory_mb": 0, + "memory_efficiency_ratio": 0, + "p50_latency": 28.382844594999998, + "p95_latency": 28.4195291305, + "p99_latency": 28.422789978100003, + "timestamp": "2025-09-05 16:35:21", + "go_version": "go1.23.0", + "cpu_count": 12, + "total_memory_gb": 36 + }, + { + "test_name": "throughput", + "language": "go", + "data_size": 10485760, + "concurrency": 1, + "encrypt_latency_ms": 162.8668667, + "decrypt_latency_ms": 105.80624600000002, + "end_to_end_latency_ms": 268.877454, + "ops_per_second": 3.718583603598223, + "bytes_per_second": 38992175.20726611, + "peak_memory_mb": 0, + "memory_efficiency_ratio": 0, + "p50_latency": 256.69911874999997, + "p95_latency": 257.01456312499994, + "p99_latency": 257.042602625, + "timestamp": "2025-09-05 16:35:25", + "go_version": "go1.23.0", + "cpu_count": 12, + "total_memory_gb": 36 + }, + { + "test_name": "memory", + "language": "go", + "data_size": 1024, + "concurrency": 1, + "encrypt_latency_ms": 0, + "decrypt_latency_ms": 0, + "end_to_end_latency_ms": 0, + "ops_per_second": 0, + "bytes_per_second": 0, + "peak_memory_mb": 0.2695770263671875, + "memory_efficiency_ratio": 0.006158346483969054, + "p50_latency": 0, + "p95_latency": 0, + "p99_latency": 0, + "timestamp": "2025-09-05 16:35:25", + "go_version": "go1.23.0", + "cpu_count": 12, + "total_memory_gb": 36 + }, + { + "test_name": "memory", + "language": "go", + "data_size": 5120, + "concurrency": 1, + "encrypt_latency_ms": 0, + "decrypt_latency_ms": 0, + "end_to_end_latency_ms": 0, + "ops_per_second": 0, + "bytes_per_second": 0, + "peak_memory_mb": 0.7214889526367188, + "memory_efficiency_ratio": 0.006885259305320369, + "p50_latency": 0, + "p95_latency": 0, + "p99_latency": 0, + "timestamp": "2025-09-05 16:35:25", + "go_version": "go1.23.0", + "cpu_count": 12, + "total_memory_gb": 36 + }, + { + "test_name": "memory", + "language": "go", + "data_size": 10240, + "concurrency": 1, + "encrypt_latency_ms": 0, + "decrypt_latency_ms": 0, + "end_to_end_latency_ms": 0, + "ops_per_second": 0, + "bytes_per_second": 0, + "peak_memory_mb": 1.23529052734375, + "memory_efficiency_ratio": 0.008949221557556078, + "p50_latency": 0, + "p95_latency": 0, + "p99_latency": 0, + "timestamp": "2025-09-05 16:35:25", + "go_version": "go1.23.0", + "cpu_count": 12, + "total_memory_gb": 36 + }, + { + "test_name": "memory", + "language": "go", + "data_size": 102400, + "concurrency": 1, + "encrypt_latency_ms": 0, + "decrypt_latency_ms": 0, + "end_to_end_latency_ms": 0, + "ops_per_second": 0, + "bytes_per_second": 0, + "peak_memory_mb": 8.792701721191406, + "memory_efficiency_ratio": 0.01884318174189905, + "p50_latency": 0, + "p95_latency": 0, + "p99_latency": 0, + "timestamp": "2025-09-05 16:35:25", + "go_version": "go1.23.0", + "cpu_count": 12, + "total_memory_gb": 36 + }, + { + "test_name": "memory", + "language": "go", + "data_size": 512000, + "concurrency": 1, + "encrypt_latency_ms": 0, + "decrypt_latency_ms": 0, + "end_to_end_latency_ms": 0, + "ops_per_second": 0, + "bytes_per_second": 0, + "peak_memory_mb": 32.842933654785156, + "memory_efficiency_ratio": 0.021813340080881084, + "p50_latency": 0, + "p95_latency": 0, + "p99_latency": 0, + "timestamp": "2025-09-05 16:35:25", + "go_version": "go1.23.0", + "cpu_count": 12, + "total_memory_gb": 36 + }, + { + "test_name": "memory", + "language": "go", + "data_size": 1048576, + "concurrency": 1, + "encrypt_latency_ms": 0, + "decrypt_latency_ms": 0, + "end_to_end_latency_ms": 0, + "ops_per_second": 0, + "bytes_per_second": 0, + "peak_memory_mb": 92.34166717529297, + "memory_efficiency_ratio": 0.021453425319202808, + "p50_latency": 0, + "p95_latency": 0, + "p99_latency": 0, + "timestamp": "2025-09-05 16:35:25", + "go_version": "go1.23.0", + "cpu_count": 12, + "total_memory_gb": 36 + }, + { + "test_name": "memory", + "language": "go", + "data_size": 10485760, + "concurrency": 1, + "encrypt_latency_ms": 0, + "decrypt_latency_ms": 0, + "end_to_end_latency_ms": 0, + "ops_per_second": 0, + "bytes_per_second": 0, + "peak_memory_mb": 875.4150695800781, + "memory_efficiency_ratio": 0.020982095025679496, + "p50_latency": 0, + "p95_latency": 0, + "p99_latency": 0, + "timestamp": "2025-09-05 16:35:27", + "go_version": "go1.23.0", + "cpu_count": 12, + "total_memory_gb": 36 + }, + { + "test_name": "concurrent", + "language": "go", + "data_size": 1024, + "concurrency": 2, + "encrypt_latency_ms": 0, + "decrypt_latency_ms": 0, + "end_to_end_latency_ms": 1.2340541, + "ops_per_second": 1564.9961688893786, + "bytes_per_second": 1602556.0769427237, + "peak_memory_mb": 0, + "memory_efficiency_ratio": 0, + "p50_latency": 1.01829489, + "p95_latency": 1.018823091, + "p99_latency": 1.0188700422, + "timestamp": "2025-09-05 16:35:27", + "go_version": "go1.23.0", + "cpu_count": 12, + "total_memory_gb": 36 + }, + { + "test_name": "concurrent", + "language": "go", + "data_size": 1024, + "concurrency": 4, + "encrypt_latency_ms": 0, + "decrypt_latency_ms": 0, + "end_to_end_latency_ms": 1.3677062000000002, + "ops_per_second": 2744.896208612112, + "bytes_per_second": 2810773.7176188026, + "peak_memory_mb": 0, + "memory_efficiency_ratio": 0, + "p50_latency": 1.03976703, + "p95_latency": 1.0402692569999998, + "p99_latency": 1.0403138993999999, + "timestamp": "2025-09-05 16:35:27", + "go_version": "go1.23.0", + "cpu_count": 12, + "total_memory_gb": 36 + }, + { + "test_name": "concurrent", + "language": "go", + "data_size": 1024, + "concurrency": 8, + "encrypt_latency_ms": 0, + "decrypt_latency_ms": 0, + "end_to_end_latency_ms": 1.5036301500000002, + "ops_per_second": 4628.200993975586, + "bytes_per_second": 4739277.817831, + "peak_memory_mb": 0, + "memory_efficiency_ratio": 0, + "p50_latency": 1.01682444, + "p95_latency": 1.018016436, + "p99_latency": 1.0181223912, + "timestamp": "2025-09-05 16:35:27", + "go_version": "go1.23.0", + "cpu_count": 12, + "total_memory_gb": 36 + }, + { + "test_name": "concurrent", + "language": "go", + "data_size": 1024, + "concurrency": 16, + "encrypt_latency_ms": 0, + "decrypt_latency_ms": 0, + "end_to_end_latency_ms": 1.6673651125, + "ops_per_second": 5193.709119828607, + "bytes_per_second": 5318358.138704494, + "peak_memory_mb": 0, + "memory_efficiency_ratio": 0, + "p50_latency": 1.013153195, + "p95_latency": 1.0170782704999999, + "p99_latency": 1.0174271661, + "timestamp": "2025-09-05 16:35:27", + "go_version": "go1.23.0", + "cpu_count": 12, + "total_memory_gb": 36 + }, + { + "test_name": "concurrent", + "language": "go", + "data_size": 5120, + "concurrency": 2, + "encrypt_latency_ms": 0, + "decrypt_latency_ms": 0, + "end_to_end_latency_ms": 1.2209042, + "ops_per_second": 1589.3094148623634, + "bytes_per_second": 8137264.204095301, + "peak_memory_mb": 0, + "memory_efficiency_ratio": 0, + "p50_latency": 1.06605625, + "p95_latency": 1.066106875, + "p99_latency": 1.066111375, + "timestamp": "2025-09-05 16:35:27", + "go_version": "go1.23.0", + "cpu_count": 12, + "total_memory_gb": 36 + }, + { + "test_name": "concurrent", + "language": "go", + "data_size": 5120, + "concurrency": 4, + "encrypt_latency_ms": 0, + "decrypt_latency_ms": 0, + "end_to_end_latency_ms": 1.2668418000000001, + "ops_per_second": 2742.5595046279323, + "bytes_per_second": 14041904.663695011, + "peak_memory_mb": 0, + "memory_efficiency_ratio": 0, + "p50_latency": 1.046126635, + "p95_latency": 1.0483781065, + "p99_latency": 1.0485782373, + "timestamp": "2025-09-05 16:35:27", + "go_version": "go1.23.0", + "cpu_count": 12, + "total_memory_gb": 36 + }, + { + "test_name": "concurrent", + "language": "go", + "data_size": 5120, + "concurrency": 8, + "encrypt_latency_ms": 0, + "decrypt_latency_ms": 0, + "end_to_end_latency_ms": 1.473870825, + "ops_per_second": 4278.723310259961, + "bytes_per_second": 21907063.348531, + "peak_memory_mb": 0, + "memory_efficiency_ratio": 0, + "p50_latency": 1.0665707549999999, + "p95_latency": 1.0673094345, + "p99_latency": 1.0673750949, + "timestamp": "2025-09-05 16:35:27", + "go_version": "go1.23.0", + "cpu_count": 12, + "total_memory_gb": 36 + }, + { + "test_name": "concurrent", + "language": "go", + "data_size": 5120, + "concurrency": 16, + "encrypt_latency_ms": 0, + "decrypt_latency_ms": 0, + "end_to_end_latency_ms": 1.6490411375000005, + "ops_per_second": 5609.803130971372, + "bytes_per_second": 28722192.030573424, + "peak_memory_mb": 0, + "memory_efficiency_ratio": 0, + "p50_latency": 1.0735319449999998, + "p95_latency": 1.0736353955, + "p99_latency": 1.0736445911, + "timestamp": "2025-09-05 16:35:27", + "go_version": "go1.23.0", + "cpu_count": 12, + "total_memory_gb": 36 + }, + { + "test_name": "concurrent", + "language": "go", + "data_size": 10240, + "concurrency": 2, + "encrypt_latency_ms": 0, + "decrypt_latency_ms": 0, + "end_to_end_latency_ms": 1.2427123999999998, + "ops_per_second": 1565.1901706057286, + "bytes_per_second": 16027547.34700266, + "peak_memory_mb": 0, + "memory_efficiency_ratio": 0, + "p50_latency": 1.110504125, + "p95_latency": 1.1112584375, + "p99_latency": 1.1113254875000003, + "timestamp": "2025-09-05 16:35:27", + "go_version": "go1.23.0", + "cpu_count": 12, + "total_memory_gb": 36 + }, + { + "test_name": "concurrent", + "language": "go", + "data_size": 10240, + "concurrency": 4, + "encrypt_latency_ms": 0, + "decrypt_latency_ms": 0, + "end_to_end_latency_ms": 1.3438314500000001, + "ops_per_second": 2648.451324709005, + "bytes_per_second": 27120141.56502021, + "peak_memory_mb": 0, + "memory_efficiency_ratio": 0, + "p50_latency": 1.1308829799999998, + "p95_latency": 1.1308901619999998, + "p99_latency": 1.1308908004, + "timestamp": "2025-09-05 16:35:27", + "go_version": "go1.23.0", + "cpu_count": 12, + "total_memory_gb": 36 + }, + { + "test_name": "concurrent", + "language": "go", + "data_size": 10240, + "concurrency": 8, + "encrypt_latency_ms": 0, + "decrypt_latency_ms": 0, + "end_to_end_latency_ms": 2.800402125, + "ops_per_second": 2230.286442378654, + "bytes_per_second": 22838133.169957418, + "peak_memory_mb": 0, + "memory_efficiency_ratio": 0, + "p50_latency": 1.164254495, + "p95_latency": 1.1673329405, + "p99_latency": 1.1676065801, + "timestamp": "2025-09-05 16:35:27", + "go_version": "go1.23.0", + "cpu_count": 12, + "total_memory_gb": 36 + }, + { + "test_name": "concurrent", + "language": "go", + "data_size": 10240, + "concurrency": 16, + "encrypt_latency_ms": 0, + "decrypt_latency_ms": 0, + "end_to_end_latency_ms": 7.795057837499999, + "ops_per_second": 1831.243285775106, + "bytes_per_second": 18751931.246337086, + "peak_memory_mb": 0, + "memory_efficiency_ratio": 0, + "p50_latency": 2.6404604849999997, + "p95_latency": 2.6776255215, + "p99_latency": 2.6809290803, + "timestamp": "2025-09-05 16:35:27", + "go_version": "go1.23.0", + "cpu_count": 12, + "total_memory_gb": 36 + }, + { + "test_name": "concurrent", + "language": "go", + "data_size": 102400, + "concurrency": 2, + "encrypt_latency_ms": 0, + "decrypt_latency_ms": 0, + "end_to_end_latency_ms": 5.8549622999999995, + "ops_per_second": 334.04690205571126, + "bytes_per_second": 34206402.77050483, + "peak_memory_mb": 0, + "memory_efficiency_ratio": 0, + "p50_latency": 4.692131845, + "p95_latency": 4.7008005055, + "p99_latency": 4.7015710531, + "timestamp": "2025-09-05 16:35:27", + "go_version": "go1.23.0", + "cpu_count": 12, + "total_memory_gb": 36 + }, + { + "test_name": "concurrent", + "language": "go", + "data_size": 102400, + "concurrency": 4, + "encrypt_latency_ms": 0, + "decrypt_latency_ms": 0, + "end_to_end_latency_ms": 8.160556199999998, + "ops_per_second": 476.22307479381027, + "bytes_per_second": 48765242.85888617, + "peak_memory_mb": 0, + "memory_efficiency_ratio": 0, + "p50_latency": 6.535101490000001, + "p95_latency": 6.549255331, + "p99_latency": 6.5505134502, + "timestamp": "2025-09-05 16:35:27", + "go_version": "go1.23.0", + "cpu_count": 12, + "total_memory_gb": 36 + }, + { + "test_name": "concurrent", + "language": "go", + "data_size": 102400, + "concurrency": 8, + "encrypt_latency_ms": 0, + "decrypt_latency_ms": 0, + "end_to_end_latency_ms": 12.105015600000002, + "ops_per_second": 640.1194923858826, + "bytes_per_second": 65548236.02031438, + "peak_memory_mb": 0, + "memory_efficiency_ratio": 0, + "p50_latency": 8.422308249999999, + "p95_latency": 8.605135374999998, + "p99_latency": 8.621386675, + "timestamp": "2025-09-05 16:35:27", + "go_version": "go1.23.0", + "cpu_count": 12, + "total_memory_gb": 36 + }, + { + "test_name": "concurrent", + "language": "go", + "data_size": 102400, + "concurrency": 16, + "encrypt_latency_ms": 0, + "decrypt_latency_ms": 0, + "end_to_end_latency_ms": 17.350558324999998, + "ops_per_second": 804.9980315282511, + "bytes_per_second": 82431798.4284929, + "peak_memory_mb": 0, + "memory_efficiency_ratio": 0, + "p50_latency": 7.4794002850000005, + "p95_latency": 7.709260541500001, + "p99_latency": 7.7296925643000005, + "timestamp": "2025-09-05 16:35:27", + "go_version": "go1.23.0", + "cpu_count": 12, + "total_memory_gb": 36 + }, + { + "test_name": "concurrent", + "language": "go", + "data_size": 512000, + "concurrency": 2, + "encrypt_latency_ms": 0, + "decrypt_latency_ms": 0, + "end_to_end_latency_ms": 18.3567666, + "ops_per_second": 106.86676913479958, + "bytes_per_second": 54715785.79701739, + "peak_memory_mb": 0, + "memory_efficiency_ratio": 0, + "p50_latency": 16.506474920000002, + "p95_latency": 16.543952648, + "p99_latency": 16.5472840016, + "timestamp": "2025-09-05 16:35:27", + "go_version": "go1.23.0", + "cpu_count": 12, + "total_memory_gb": 36 + }, + { + "test_name": "concurrent", + "language": "go", + "data_size": 512000, + "concurrency": 4, + "encrypt_latency_ms": 0, + "decrypt_latency_ms": 0, + "end_to_end_latency_ms": 21.645835299999995, + "ops_per_second": 178.2832432595875, + "bytes_per_second": 91281020.5489088, + "peak_memory_mb": 0, + "memory_efficiency_ratio": 0, + "p50_latency": 17.341143865000003, + "p95_latency": 17.412636143500002, + "p99_latency": 17.4189910127, + "timestamp": "2025-09-05 16:35:27", + "go_version": "go1.23.0", + "cpu_count": 12, + "total_memory_gb": 36 + }, + { + "test_name": "concurrent", + "language": "go", + "data_size": 512000, + "concurrency": 8, + "encrypt_latency_ms": 0, + "decrypt_latency_ms": 0, + "end_to_end_latency_ms": 37.56973970000001, + "ops_per_second": 206.24071513967974, + "bytes_per_second": 105595246.15151604, + "peak_memory_mb": 0, + "memory_efficiency_ratio": 0, + "p50_latency": 29.795929374999996, + "p95_latency": 29.985315812499998, + "p99_latency": 30.0021501625, + "timestamp": "2025-09-05 16:35:27", + "go_version": "go1.23.0", + "cpu_count": 12, + "total_memory_gb": 36 + }, + { + "test_name": "concurrent", + "language": "go", + "data_size": 512000, + "concurrency": 16, + "encrypt_latency_ms": 0, + "decrypt_latency_ms": 0, + "end_to_end_latency_ms": 62.11082508750002, + "ops_per_second": 235.30023060863815, + "bytes_per_second": 120473718.07162273, + "peak_memory_mb": 0, + "memory_efficiency_ratio": 0, + "p50_latency": 22.778092360000002, + "p95_latency": 26.295113584000003, + "p99_latency": 26.6077376928, + "timestamp": "2025-09-05 16:35:28", + "go_version": "go1.23.0", + "cpu_count": 12, + "total_memory_gb": 36 + }, + { + "test_name": "concurrent", + "language": "go", + "data_size": 1048576, + "concurrency": 2, + "encrypt_latency_ms": 0, + "decrypt_latency_ms": 0, + "end_to_end_latency_ms": 33.720320900000004, + "ops_per_second": 58.28121414339365, + "bytes_per_second": 61112282.40162314, + "peak_memory_mb": 0, + "memory_efficiency_ratio": 0, + "p50_latency": 30.157768124999993, + "p95_latency": 30.159696937499994, + "p99_latency": 30.159868387499998, + "timestamp": "2025-09-05 16:35:28", + "go_version": "go1.23.0", + "cpu_count": 12, + "total_memory_gb": 36 + }, + { + "test_name": "concurrent", + "language": "go", + "data_size": 1048576, + "concurrency": 4, + "encrypt_latency_ms": 0, + "decrypt_latency_ms": 0, + "end_to_end_latency_ms": 43.6916624, + "ops_per_second": 88.31874234110906, + "bytes_per_second": 92608913.56907077, + "peak_memory_mb": 0, + "memory_efficiency_ratio": 0, + "p50_latency": 33.482654374999996, + "p95_latency": 33.7649433125, + "p99_latency": 33.790035662499996, + "timestamp": "2025-09-05 16:35:28", + "go_version": "go1.23.0", + "cpu_count": 12, + "total_memory_gb": 36 + }, + { + "test_name": "concurrent", + "language": "go", + "data_size": 1048576, + "concurrency": 8, + "encrypt_latency_ms": 0, + "decrypt_latency_ms": 0, + "end_to_end_latency_ms": 68.804938475, + "ops_per_second": 112.05021924992457, + "bytes_per_second": 117493170.7002089, + "peak_memory_mb": 0, + "memory_efficiency_ratio": 0, + "p50_latency": 47.546911125, + "p95_latency": 49.46589393749999, + "p99_latency": 49.6364701875, + "timestamp": "2025-09-05 16:35:29", + "go_version": "go1.23.0", + "cpu_count": 12, + "total_memory_gb": 36 + }, + { + "test_name": "concurrent", + "language": "go", + "data_size": 1048576, + "concurrency": 16, + "encrypt_latency_ms": 0, + "decrypt_latency_ms": 0, + "end_to_end_latency_ms": 136.88842446249998, + "ops_per_second": 108.97458491325197, + "bytes_per_second": 114268134.3499981, + "peak_memory_mb": 0, + "memory_efficiency_ratio": 0, + "p50_latency": 29.043491180000004, + "p95_latency": 32.003058542000005, + "p99_latency": 32.2661311964, + "timestamp": "2025-09-05 16:35:29", + "go_version": "go1.23.0", + "cpu_count": 12, + "total_memory_gb": 36 + }, + { + "test_name": "concurrent", + "language": "go", + "data_size": 10485760, + "concurrency": 2, + "encrypt_latency_ms": 0, + "decrypt_latency_ms": 0, + "end_to_end_latency_ms": 279.2471291, + "ops_per_second": 7.021947359796068, + "bytes_per_second": 73630454.74745522, + "peak_memory_mb": 0, + "memory_efficiency_ratio": 0, + "p50_latency": 223.500658125, + "p95_latency": 223.8941004375, + "p99_latency": 223.9290730875, + "timestamp": "2025-09-05 16:35:31", + "go_version": "go1.23.0", + "cpu_count": 12, + "total_memory_gb": 36 + }, + { + "test_name": "concurrent", + "language": "go", + "data_size": 10485760, + "concurrency": 4, + "encrypt_latency_ms": 0, + "decrypt_latency_ms": 0, + "end_to_end_latency_ms": 378.68978545000004, + "ops_per_second": 10.289905217110569, + "bytes_per_second": 107897476.52936932, + "peak_memory_mb": 0, + "memory_efficiency_ratio": 0, + "p50_latency": 292.21869039499995, + "p95_latency": 297.13233615049995, + "p99_latency": 297.56910466209996, + "timestamp": "2025-09-05 16:35:33", + "go_version": "go1.23.0", + "cpu_count": 12, + "total_memory_gb": 36 + }, + { + "test_name": "concurrent", + "language": "go", + "data_size": 10485760, + "concurrency": 8, + "encrypt_latency_ms": 0, + "decrypt_latency_ms": 0, + "end_to_end_latency_ms": 769.9851667249998, + "ops_per_second": 10.017963563599105, + "bytes_per_second": 105045961.61664495, + "peak_memory_mb": 0, + "memory_efficiency_ratio": 0, + "p50_latency": 474.768449385, + "p95_latency": 475.0396044315, + "p99_latency": 475.06370710230004, + "timestamp": "2025-09-05 16:35:37", + "go_version": "go1.23.0", + "cpu_count": 12, + "total_memory_gb": 36 + }, + { + "test_name": "concurrent", + "language": "go", + "data_size": 10485760, + "concurrency": 16, + "encrypt_latency_ms": 0, + "decrypt_latency_ms": 0, + "end_to_end_latency_ms": 4153.142662025, + "ops_per_second": 3.7656081073474392, + "bytes_per_second": 39485262.86769948, + "peak_memory_mb": 0, + "memory_efficiency_ratio": 0, + "p50_latency": 1614.9815268050002, + "p95_latency": 1695.8926012295, + "p99_latency": 1703.0846967339, + "timestamp": "2025-09-05 16:35:58", + "go_version": "go1.23.0", + "cpu_count": 12, + "total_memory_gb": 36 + } + ] +}