Best #golang release ever (again?). Check replies for more details!
https://twitter.com/mvdan_/status/1456947756925399040
https://twitter.com/mvdan_/status/1456947756925399040
Twitter
Daniel MartΓ
Here's a list of some changes to look forward to in #golang 1.18! The first beta should be out in a month, and the final release in three months. Each change with a link, so you can read more.
As always @commaok has something to propose!
And today's topic out of order execution for math operations in #golang
https://github.com/golang/go/issues/49331
And today's topic out of order execution for math operations in #golang
https://github.com/golang/go/issues/49331
GitHub
cmd/compile: reorganize associative computation to allow superscalar execution Β· Issue #49331 Β· golang/go
The compiler currently compiles a+b+c+d as a+(b+(c+d)). It should use (a+b)+(c+d) instead, because the latter can be executed out of order. More broadly, we should balance trees of associative comp...
Not a technical tweet, sorry. But important for the #golang community. Thank you @mvdan_
I also hope that https://github.com/golang/go/issues/43930 will be back on track too.
https://github.com/golang/go/issues/28262#issuecomment-975416122
I also hope that https://github.com/golang/go/issues/43930 will be back on track too.
https://github.com/golang/go/issues/28262#issuecomment-975416122
GitHub
Go compiler and runtime meeting notes Β· Issue #43930 Β· golang/go
Google's Go compiler and runtime team meets periodically (roughly weekly) to discuss ongoing development of the compiler and runtime. While not open to the public, there's been desire by th...
> The missing cases (range loops and loops with labeled breaks/continues) are now inlineable, so all for loops are now inlineable.
One more reason to try #golang 1.18 as far as first release candidate will be published. https://github.com/golang/go/issues/14768#issuecomment-981759381
One more reason to try #golang 1.18 as far as first release candidate will be published. https://github.com/golang/go/issues/14768#issuecomment-981759381
GitHub
cmd/compile: for-loops cannot be inlined Β· Issue #14768 Β· golang/go
Using go devel +ed4a27a Currently, functions with for-loops are not inline-able, would be nice if they did. Not long ago, I used a non-idiomatic goto in order to cheat around the inliner. @dr2chase
Unpopular opinion: this #golang CL is better then generics https://go-review.googlesource.com/c/go/+/333529/
Related issue https://github.com/golang/go/issues/47056
Super kudos for @dvyukov and @llvmorg team
Related issue https://github.com/golang/go/issues/47056
Super kudos for @dvyukov and @llvmorg team
GitHub
testing: provide a way to work around "race: limit on 8128 simultaneously alive goroutines is exceeded" error Β· Issue #47056 Β·β¦
$ go version go version devel go1.17-dc00dc6c6b Thu Jun 10 12:41:37 2021 +0000 linux/amd64 Issue #38184 seems to be a reasonably hard limit in the race detector library, but it's not always...
#golang GC tuning by UberEng
https://eng.uber.com/how-we-saved-70k-cores-across-30-mission-critical-services/
https://eng.uber.com/how-we-saved-70k-cores-across-30-mission-critical-services/
Aaaaand after somewhat heated discussions in chats upcoming #golang generics will not allocate interfaces. But looks like this will be available only in Go 1.19...
issue https://github.com/golang/go/issues/50182 and fix https://go-review.googlesource.com/c/go/+/378178/
issue https://github.com/golang/go/issues/50182 and fix https://go-review.googlesource.com/c/go/+/378178/
GitHub
cmd/compile: generic functions are significantly slower than identical non-generic functions in some cases Β· Issue #50182 Β· golang/go
What version of Go are you using (go version)? $ go version go version go1.18beta1 windows/amd64 Does this issue reproduce with the latest release? It reproduces on the 1.18 Beta 1 release. What op...
There is a chanΡe that #golang will get 4x faster SHA256 on AMD64 https://github.com/golang/go/issues/50543
Check also license comment by ianlancetaylor, better to know before the law suit.
Check also license comment by ianlancetaylor, better to know before the law suit.
GitHub
crypto/sha256: add native SHA256 instruction implementation for AMD64 Β· Issue #50543 Β· golang/go
The sha_ni sha256 instructions have been shown to provide an ~4x increase in hash rate on newer amd64 systems versus the avx2 implementation. Transliterating the Linux implementation shows an up to...
New post by @ignaciohagopian about #golang write barriers.
https://ihagopian.com/posts/write-barriers-in-the-go-garbage-collector/
https://ihagopian.com/posts/write-barriers-in-the-go-garbage-collector/
~6month ago @_rsc shared possible #golang optimisations that can bring us incredible performance results with quite small assembly changes https://github.com/golang/go/issues/47120
GitHub
cmd/compile: tight code optimization opportunities Β· Issue #47120 Β· golang/go
The generated x86 code can be improved in some fairly simple ways - hoisting computed constants out of loop bodies, and avoiding unnecessary register moves - that have a significant performance imp...
Tracing low-level behaviour of a live #golang application with #eBPF uprobes by @nserrino from @pixie_run
https://blog.px.dev/go-garbage-collector/
(PS: why this post is from Feb 8, 2022 ? π€)
https://blog.px.dev/go-garbage-collector/
(PS: why this post is from Feb 8, 2022 ? π€)
Pixie Labs Blog
Dumpster diving the Go garbage collector
Pixie Blog
Very good article about VM internals:
Optimizing GoAWK with a bytecode compiler and virtual machine.
https://benhoyt.com/writings/goawk-compiler-vm/ #golang
Optimizing GoAWK with a bytecode compiler and virtual machine.
https://benhoyt.com/writings/goawk-compiler-vm/ #golang
Benhoyt
Optimizing GoAWK with a bytecode compiler and virtual machine
How I sped up GoAWK by switching from a tree-walking interpreter to a bytecode compiler and virtual machine interpreter.
πΊπ¦ Go performance channel
Very good article about VM internals: Optimizing GoAWK with a bytecode compiler and virtual machine. https://benhoyt.com/writings/goawk-compiler-vm/ #golang
And an additional post about #golang performance and binary size.
https://benhoyt.com/writings/go-version-performance/
https://benhoyt.com/writings/go-version-performance/
Benhoyt
Go performance from version 1.2 to 1.18
Shows how much the performance of Go has improved from version 1.2 through to 1.18 -- in its compiler, runtime, and libraries.
Okay β took the nerd snipe bait β here is a little package to add cpu-ns/op to any bench function.
https://github.com/felixge/benchmore
Let me know what you think : ).
https://twitter.com/felixge/status/1490048600654725122
https://github.com/felixge/benchmore
Let me know what you think : ).
https://twitter.com/felixge/status/1490048600654725122
GitHub
GitHub - felixge/benchmore
Contribute to felixge/benchmore development by creating an account on GitHub.
User Zik have combined and benchmarked @bboreham patches related to the #golang regexp package and...results are astonishing!
Well, if all these patches will be merged in 1.19 we can get 30-40% better perf!
https://github.com/golang/go/issues/26623#issuecomment-1033158328
Well, if all these patches will be merged in 1.19 we can get 30-40% better perf!
https://github.com/golang/go/issues/26623#issuecomment-1033158328
GitHub
regexp: investigate further performance improvements Β· Issue #26623 Β· golang/go
Languages Regex Benchmark: Language Email(ms) URI(ms) IP(ms) Total(ms) C PCRE2 25.00 25.02 5.65 55.66 Rust 31.31 31.73 6.75 69.79 PHP 54.39 50.22 5.80 110.40 Javascript 74.88 63.09 2.02 140.00 D ld...