in ember/benchmark.py [0:0]
def run_batch_benchmark(self) -> List[Dict]:
"""Run benchmark with multiple batched requests concurrently."""
results = []
total_batches = self.config.total_requests
print(f"\nRunning {total_batches} requests with {self.config.max_batch_size} documents each...")
start_time = time.time()
with ThreadPoolExecutor(max_workers=self.config.concurrent_requests) as executor:
futures = [executor.submit(self.send_request) for _ in range(total_batches)]
# Process results as they complete
for i, future in enumerate(futures, 1):
result = future.result()
results.append(result)
# Print progress every 10%
if i % (total_batches // 10) == 0 or i == total_batches:
progress = (i / total_batches) * 100
elapsed = time.time() - start_time
rate = i / elapsed
print(f"Progress: {progress:.1f}% ({i}/{total_batches}) - Rate: {rate:.2f} requests/sec")
return results