mmap: implement io.WriterTo and io.ReadSeeker
This extends the ReaderAt type to also implement io.WriterTo and io.ReadSeeker, the later being required for the former.
Fixes golang/go#56422
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.
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!
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)
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!
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!
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!
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!
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!
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.