exp icon indicating copy to clipboard operation
exp copied to clipboard

mmap: implement io.WriterTo and io.ReadSeeker

Open costela opened this issue 1 year ago • 9 comments

This extends the ReaderAt type to also implement io.WriterTo and io.ReadSeeker, the later being required for the former.

Fixes golang/go#56422

costela avatar Jan 15 '24 11:01 costela

This PR (HEAD: ab758513e8157f4d1e73b5e2d9f9f7b1b9739d33) has been imported to Gerrit for code review.

Please visit Gerrit at https://go-review.googlesource.com/c/exp/+/555796.

Important tips:

  • Don't comment on this PR. All discussion takes place in Gerrit.
  • You need a Gmail or other Google account to log in to Gerrit.
  • To change your code in response to feedback:
    • Push a new commit to the branch used by your GitHub PR.
    • A new "patch set" will then appear in Gerrit.
    • Respond to each comment by marking as Done in Gerrit if implemented as suggested. You can alternatively write a reply.
    • Critical: you must click the blue Reply button near the top to publish your Gerrit responses.
    • Multiple commits in the PR will be squashed by GerritBot.
  • The title and description of the GitHub PR are used to construct the final commit message.
    • Edit these as needed via the GitHub web interface (not via Gerrit or git).
    • You should word wrap the PR description at ~76 characters unless you need longer lines (e.g., for tables or URLs).
  • See the Sending a change via GitHub and Reviews sections of the Contribution Guide as well as the FAQ for details.

gopherbot avatar Jan 15 '24 11:01 gopherbot

Message from Gopher Robot:

Patch Set 1:

(1 comment)


Please don’t reply on this GitHub thread. Visit golang.org/cl/555796. After addressing review feedback, remember to publish your drafts!

gopherbot avatar Jan 15 '24 11:01 gopherbot

Preliminary results from the included benchmark, which represents simple usage via io.Copy:

goos: linux
goarch: amd64
pkg: golang.org/x/exp/mmap
cpu: 12th Gen Intel(R) Core(TM) i7-1250U
            │  old.bench   │              new.bench              │
            │    sec/op    │   sec/op     vs base                │
MmapCopy-12   138.80µ ± 5%   65.80µ ± 2%  -52.60% (p=0.000 n=10)

            │  old.bench   │               new.bench               │
            │     B/s      │     B/s       vs base                 │
MmapCopy-12   15.17Gi ± 4%   32.00Gi ± 2%  +110.95% (p=0.000 n=10)

            │   old.bench   │             new.bench              │
            │     B/op      │    B/op     vs base                │
MmapCopy-12   32784.00 ± 0%   16.00 ± 0%  -99.95% (p=0.000 n=10)

            │ old.bench  │             new.bench              │
            │ allocs/op  │ allocs/op   vs base                │
MmapCopy-12   2.000 ± 0%   1.000 ± 0%  -50.00% (p=0.000 n=10)

costela avatar Jan 15 '24 12:01 costela

Message from Leo Antunes:

Patch Set 2:

(1 comment)


Please don’t reply on this GitHub thread. Visit golang.org/cl/555796. After addressing review feedback, remember to publish your drafts!

gopherbot avatar Jan 15 '24 12:01 gopherbot

Message from qiulaidongfeng:

Patch Set 2: Run-TryBot+1


Please don’t reply on this GitHub thread. Visit golang.org/cl/555796. After addressing review feedback, remember to publish your drafts!

gopherbot avatar Jan 16 '24 08:01 gopherbot

Message from Gopher Robot:

Patch Set 2:

(1 comment)


Please don’t reply on this GitHub thread. Visit golang.org/cl/555796. After addressing review feedback, remember to publish your drafts!

gopherbot avatar Jan 16 '24 08:01 gopherbot

Message from Gopher Robot:

Patch Set 2: TryBot-Result+1

(1 comment)


Please don’t reply on this GitHub thread. Visit golang.org/cl/555796. After addressing review feedback, remember to publish your drafts!

gopherbot avatar Jan 16 '24 08:01 gopherbot

Message from qiulaidongfeng:

Patch Set 2: -Run-TryBot Code-Review+1


Please don’t reply on this GitHub thread. Visit golang.org/cl/555796. After addressing review feedback, remember to publish your drafts!

gopherbot avatar Jan 16 '24 09:01 gopherbot

This PR (HEAD: a3eda1efde8ec0877bcc9aba0a1d8c0616df41b5) has been imported to Gerrit for code review.

Please visit Gerrit at https://go-review.googlesource.com/c/exp/+/555796.

Important tips:

  • Don't comment on this PR. All discussion takes place in Gerrit.
  • You need a Gmail or other Google account to log in to Gerrit.
  • To change your code in response to feedback:
    • Push a new commit to the branch used by your GitHub PR.
    • A new "patch set" will then appear in Gerrit.
    • Respond to each comment by marking as Done in Gerrit if implemented as suggested. You can alternatively write a reply.
    • Critical: you must click the blue Reply button near the top to publish your Gerrit responses.
    • Multiple commits in the PR will be squashed by GerritBot.
  • The title and description of the GitHub PR are used to construct the final commit message.
    • Edit these as needed via the GitHub web interface (not via Gerrit or git).
    • You should word wrap the PR description at ~76 characters unless you need longer lines (e.g., for tables or URLs).
  • See the Sending a change via GitHub and Reviews sections of the Contribution Guide as well as the FAQ for details.

gopherbot avatar Jan 16 '24 16:01 gopherbot