Benchmark large value operations
(b *testing.B)
| 382 | |
| 383 | // Benchmark large value operations |
| 384 | func BenchmarkTx_LargeValues(b *testing.B) { |
| 385 | dir := b.TempDir() |
| 386 | db := setupBenchmarkDB(b, dir) |
| 387 | defer cleanupBenchmarkDB(db, dir) |
| 388 | |
| 389 | // Create a large value (64KB) |
| 390 | largeValue := make([]byte, 64*1024) |
| 391 | for i := range largeValue { |
| 392 | largeValue[i] = byte(i % 256) |
| 393 | } |
| 394 | |
| 395 | b.ResetTimer() |
| 396 | b.ReportAllocs() |
| 397 | |
| 398 | for i := 0; i < b.N; i++ { |
| 399 | key := []byte(fmt.Sprintf("large_key_%d", i)) |
| 400 | |
| 401 | err := db.Update(func(tx *Tx) error { |
| 402 | return tx.Put("test_bucket", key, largeValue, Persistent) |
| 403 | }) |
| 404 | if err != nil { |
| 405 | b.Fatalf("Large value Put failed: %v", err) |
| 406 | } |
| 407 | |
| 408 | err = db.View(func(tx *Tx) error { |
| 409 | _, err := tx.Get("test_bucket", key) |
| 410 | return err |
| 411 | }) |
| 412 | if err != nil { |
| 413 | b.Fatalf("Large value Get failed: %v", err) |
| 414 | } |
| 415 | } |
| 416 | } |
| 417 | |
| 418 | // Benchmark transaction commit performance |
| 419 | func BenchmarkTx_TransactionCommit(b *testing.B) { |
nothing calls this directly
no test coverage detected