MCPcopy Index your code
hub / github.com/go-git/go-git / BenchmarkPackfileIterReadContent

Function BenchmarkPackfileIterReadContent

storage/filesystem/object_test.go:502–557  ·  view source on GitHub ↗
(b *testing.B)

Source from the content-addressed store, hash-verified

500}
501
502func BenchmarkPackfileIterReadContent(b *testing.B) {
503 defer fixtures.Clean()
504
505 for _, f := range fixtures.ByTag(".git") {
506 b.Run(f.URL, func(b *testing.B) {
507 fs := f.DotGit()
508 dg := dotgit.New(fs)
509
510 for i := 0; i < b.N; i++ {
511 for _, t := range objectTypes {
512 ph, err := dg.ObjectPacks()
513 if err != nil {
514 b.Fatal(err)
515 }
516
517 for _, h := range ph {
518 f, err := dg.ObjectPack(h)
519 if err != nil {
520 b.Fatal(err)
521 }
522
523 idxf, err := dg.ObjectPackIdx(h)
524 if err != nil {
525 b.Fatal(err)
526 }
527
528 iter, err := NewPackfileIter(fs, f, idxf, t, false, 0)
529 if err != nil {
530 b.Fatal(err)
531 }
532
533 err = iter.ForEach(func(o plumbing.EncodedObject) error {
534 if o.Type() != t {
535 b.Errorf("expecting %s, got %s", t, o.Type())
536 }
537
538 r, err := o.Reader()
539 if err != nil {
540 b.Fatal(err)
541 }
542
543 if _, err := io.ReadAll(r); err != nil {
544 b.Fatal(err)
545 }
546
547 return r.Close()
548 })
549 if err != nil {
550 b.Fatal(err)
551 }
552 }
553 }
554 }
555 })
556 }
557}
558
559func BenchmarkGetObjectFromPackfile(b *testing.B) {

Callers

nothing calls this directly

Calls 10

NewFunction · 0.92
NewPackfileIterFunction · 0.85
CleanMethod · 0.80
ObjectPackMethod · 0.80
ObjectPackIdxMethod · 0.80
ObjectPacksMethod · 0.65
ForEachMethod · 0.65
TypeMethod · 0.65
ReaderMethod · 0.65
CloseMethod · 0.65

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…