mirror of
https://github.com/golang/sys.git
synced 2026-01-29 15:12:09 +03:00
7143f4a4e1bc39be785a4482e622a206457450c4
The `RtlInitUnicodeString` syscall can be avoided by manually initializing the `NTUnicodeString`. The process is described in [WdmlibRtlInitUnicodeStringEx](https://learn.microsoft.com/en-us/windows-hardware/drivers/ddi/wdmsec/nf-wdmsec-wdmlibrtlinitunicodestringex). The less syscalls, the better. It also makes the function faster: ``` goos: windows goarch: amd64 pkg: golang.org/x/sys/windows cpu: Intel(R) Core(TM) i7-10850H CPU @ 2.70GHz │ old.txt │ new.txt │ │ sec/op │ sec/op vs base │ NewNTUnicodeString-12 181.05n ± 15% 96.32n ± 11% -46.80% (p=0.000 n=10) ``` Change-Id: Iaf079acdcc2024cdca6b6b649a711f6be99c5b87 Reviewed-on: https://go-review.googlesource.com/c/sys/+/618175 Reviewed-by: Damien Neil <dneil@google.com> Reviewed-by: Cherry Mui <cherryyz@google.com> LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
sys
This repository holds supplemental Go packages for low-level interactions with the operating system.
Download/Install
The easiest way to install is to run go get -u golang.org/x/sys. You can
also manually git clone the repository to $GOPATH/src/golang.org/x/sys.
Report Issues / Send Patches
This repository uses Gerrit for code changes. To learn how to submit changes to this repository, see https://golang.org/doc/contribute.html.
The main issue tracker for the sys repository is located at https://github.com/golang/go/issues. Prefix your issue with "x/sys:" in the subject line, so it is easy to find.
Description
Languages
Go
85.7%
Assembly
12.3%
Shell
1.8%
C
0.1%