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...
🇺🇦 Go performance channel
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…
Twitter
Go performance channel
@go_perf Regarding last tweet about #golang regexp patches. Thanks @bboreham ! twitter.com/bboreham/statu…
Sen Han created an issue about Completely Fair Scheduler inspired for #golang https://github.com/golang/go/issues/51071 + demo https://github.com/hnes/cpuworker
Keep in mind: it's just an interesting prototype now and there is no official plans to change the current scheduler.
Keep in mind: it's just an interesting prototype now and there is no official plans to change the current scheduler.
GitHub
runtime: investigate possible Go scheduler improvements inspired by Linux Kernel's CFS · Issue #51071 · golang/go
First, please let me pay tribute to your contributions. You guys are awesome! And Go is so marvelous! It has been more than ten years, and Go has already been very successful. So, I think it is tim...
🇺🇦 Go performance channel
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/
Good new everyone, there are fixes for issue about performance of the generics, but anyway we will wait for #golang 1.19
https://github.com/golang/go/issues/50182#issuecomment-1040507717
https://github.com/golang/go/issues/50182#issuecomment-1040507717
Speeding up #golang builtin JSON encoder up to 55% for large arrays of objects
by @multiprocessio
https://datastation.multiprocess.io/blog/2022-03-03-improving-go-json-encoding-performance-for-large-arrays-of-objects.html
by @multiprocessio
https://datastation.multiprocess.io/blog/2022-03-03-improving-go-json-encoding-performance-for-large-arrays-of-objects.html
Have found @teivah talk: Mechanical Sympathy in #golang (CC: @GoTurkiye_)
Amazing slides btw!
https://www.youtube.com/watch?v=cetmDfqr2BU
Amazing slides btw!
https://www.youtube.com/watch?v=cetmDfqr2BU
YouTube
Mechanical Sympathy in Go - Teiva Harsanyi - GopherCon Turkey 2020
We, Go Türkiye🇹🇷, are organizing monthly Go events, workshops, and an annual Go conference named GopherCon Turkey, follow us on Kommunity: https://kommunit...
Forwarded from 🇺🇦 Go performance channel (Oleg Kovalov)
Austin Clements (from #golang team) @GopherCon about runtime changes in 1.14 and what is this loop preemption beast?
https://www.youtube.com/watch?v=1I1WmeSjRSw
PS: Austin's talk is an amazing gift, right before Christmas :D
https://www.youtube.com/watch?v=1I1WmeSjRSw
PS: Austin's talk is an amazing gift, right before Christmas :D
YouTube
GopherCon 2020: Pardon the Interruption: Loop Preemption in Go 1.14 - Austin Clements
Go 1.14 significantly changed how goroutines are preempted for scheduling and garbage collection. Since Go 1.2, the Go runtime has preempted goroutines only at function calls. Most of the time, this let Go developers ignore preemption and focus on writing…
Than McIntosh from #golang team shared shortlink to Go ABI spec go.dev/s/regabi
Found in umbrella issue about runtime https://github.com/golang/go/issues/43930 (please, don't add any comments, everything will be deleted as a spam)
Found in umbrella issue about runtime https://github.com/golang/go/issues/43930 (please, don't add any comments, everything will be deleted as a spam)
🇺🇦 Go performance channel
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
The linux/amd64 version of race runtime is submitted.
Besides removing the goroutine limit, it should also be ~2x-ish faster and consume less memory.
Should be also much more suitable for running e2e systems tests and server canaries (c) @dvyukov https://github.com/golang/go/issues/47056 #golang
Besides removing the goroutine limit, it should also be ~2x-ish faster and consume less memory.
Should be also much more suitable for running e2e systems tests and server canaries (c) @dvyukov https://github.com/golang/go/issues/47056 #golang
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...
🇺🇦 Go performance channel
The linux/amd64 version of race runtime is submitted. Besides removing the goroutine limit, it should also be ~2x-ish faster and consume less memory. Should be also much more suitable for running e2e systems tests and server canaries (c) @dvyukov https://…
Related issue to v3 race detector update https://github.com/golang/go/issues/49761 #golang
GitHub
runtime: upgrade to v3 version of race detector · Issue #49761 · golang/go
See CL 333529 for the upgrade to linux/amd64. This issue is a TODO about updating all the other architectures. @dvyukov
An interesting analysis when #golang Generics can make your code slower? by @planetscaledata
https://planetscale.com/blog/generics-can-make-your-go-code-slower
https://planetscale.com/blog/generics-can-make-your-go-code-slower
Planetscale
Go Generics are a long-awaited feature added in Go 1.18. This article covers how generics were implemented in Go and some surprising ways they can impact your code.