MCPcopy Create free account
hub / github.com/bodgit/sevenzip / benchmarkArchiveNaiveParallel

Function benchmarkArchiveNaiveParallel

reader_test.go:520–565  ·  view source on GitHub ↗
(b *testing.B, file string, workers int)

Source from the content-addressed store, hash-verified

518}
519
520func benchmarkArchiveNaiveParallel(b *testing.B, file string, workers int) {
521 b.Helper()
522
523 for range b.N {
524 r, err := sevenzip.OpenReader(filepath.Join("testdata", file))
525 if err != nil {
526 b.Fatal(err)
527 }
528
529 var once sync.Once
530
531 f := func() {
532 if err := r.Close(); err != nil {
533 b.Fatal(err)
534 }
535 }
536
537 defer once.Do(f)
538
539 eg := new(errgroup.Group)
540 eg.SetLimit(workers)
541
542 for _, f := range r.File {
543 eg.Go(func() (err error) {
544 var rc io.ReadCloser
545
546 rc, err = f.Open()
547 if err != nil {
548 return fmt.Errorf("error opening file: %w", err)
549 }
550
551 defer func() {
552 err = errors.Join(err, rc.Close())
553 }()
554
555 return extractFile(b, rc, crc32.NewIEEE(), f)
556 })
557 }
558
559 if err := eg.Wait(); err != nil {
560 b.Fatal(err)
561 }
562
563 once.Do(f)
564 }
565}
566
567func benchmarkArchive(b *testing.B, file, password string, optimised bool) {
568 b.Helper()

Calls 5

CloseMethod · 0.95
OpenReaderFunction · 0.92
extractFileFunction · 0.85
CloseMethod · 0.45
OpenMethod · 0.45

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…