aboutsummaryrefslogtreecommitdiff
path: root/src/internal/syscall/unix/at_sysnum_darwin.go
diff options
context:
space:
mode:
authorJacob <vattlabs@gmail.com>2024-04-18 16:24:24 +0000
committerCherry Mui <cherryyz@google.com>2024-04-19 14:35:26 +0000
commit104c293ffe0037de2462cdd404a6910dcf58298d (patch)
tree8b4aaf686ef8de7bb38e165d0ec3cd4c4b9a91a2 /src/internal/syscall/unix/at_sysnum_darwin.go
parentf31fcc75385bc8037b46aea7f05022520d8c8148 (diff)
downloadgo-104c293ffe0037de2462cdd404a6910dcf58298d.tar.gz
go-104c293ffe0037de2462cdd404a6910dcf58298d.zip
syscall/js: allocate arg slices on stack for small numbers of args
The existing implementation causes unnecessary heap allocations for javascript syscalls: Call, Invoke, and New. The new change seeks to hint the Go compiler to allocate arg slices with length <=16 to the stack. Original Work: CL 367045 - Calling a JavaScript function with 16 arguments or fewer will not induce two additional heap allocations, at least with the current Go compiler. - Using syscall/js features with slices and strings of statically-known length will not cause them to be escaped to the heap, at least with the current Go compiler. - The reduction in allocations has the additional benefit that the garbage collector runs less often, blocking WebAssembly's one and only thread less often. Fixes #39740 Change-Id: I815047e1d4f8ada796318e2064d38d3e63f73098 GitHub-Last-Rev: 36df1b33a4506e216767d8a73395f2fafdd80eba GitHub-Pull-Request: golang/go#66684 Reviewed-on: https://go-review.googlesource.com/c/go/+/576575 Reviewed-by: Cherry Mui <cherryyz@google.com> Reviewed-by: Dmitri Shuralyov <dmitshur@google.com> LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
Diffstat (limited to 'src/internal/syscall/unix/at_sysnum_darwin.go')
0 files changed, 0 insertions, 0 deletions