In #golang 1.19 'hash/maphash' package will have Bytes and String funcs for very small inputs, which is much faster than h.Reset+h.Write+h.Sum64 pipeline due to memcopy.
https://github.com/golang/go/commit/9e16cc1541d42cb081d359339e3f45b4b9b2a372
BTW hash algo is wyhash, so it is fast in most cases (see: runtime/hash64.go)
https://github.com/golang/go/commit/9e16cc1541d42cb081d359339e3f45b4b9b2a372
BTW hash algo is wyhash, so it is fast in most cases (see: runtime/hash64.go)
GitHub
hash/maphash: add Bytes and String · golang/go@9e16cc1
For very small inputs, h.Reset+h.Write+h.Sum64 is fundamentally
slower than a single operation, by about a factor of two, because
Write must copy the data into h's buffer, just in case ther...
slower than a single operation, by about a factor of two, because
Write must copy the data into h's buffer, just in case ther...
🇺🇦 Go performance channel
In #golang 1.19 'hash/maphash' package will have Bytes and String funcs for very small inputs, which is much faster than h.Reset+h.Write+h.Sum64 pipeline due to memcopy. https://github.com/golang/go/commit/9e16cc1541d42cb081d359339e3f45b4b9b2a372 BTW hash…
Also, what hash functions (read Go packages) do you use?
Have you met a situation where you was forced to change hash algo due to performance or collision problems?
Have you met a situation where you was forced to change hash algo due to performance or collision problems?
🇺🇦 Go performance channel
#golang Developer Survey 2021 Results https://go.dev/blog/survey2021-results
Hi, gophers.
After yesterday's tweet about #golang dev survey results, I think it's a good time to make an open, friendly and easy to access go-perf community thankfully to @github discussions 💕
https://github.com/go-perf/go-perf
I hope that in 1y this will not be a problematic topic 😉
After yesterday's tweet about #golang dev survey results, I think it's a good time to make an open, friendly and easy to access go-perf community thankfully to @github discussions 💕
https://github.com/go-perf/go-perf
I hope that in 1y this will not be a problematic topic 😉
GitHub
GitHub - go-perf/go-perf: Go performance community
Go performance community. Contribute to go-perf/go-perf development by creating an account on GitHub.
🇺🇦 Go performance channel
Hi, gophers. After yesterday's tweet about #golang dev survey results, I think it's a good time to make an open, friendly and easy to access go-perf community thankfully to @github discussions 💕 https://github.com/go-perf/go-perf I hope that in 1y this…
Because community is fresh and empty and someone might be shy to start, feel free to rush to https://github.com/go-perf/go-perf/discussions/categories/show-and-tell and share your project! (with benchmarks 😄)
GitHub
Discussions · Show And Tell · go-perf/go-perf
Go performance community. Contribute to go-perf/go-perf development by creating an account on GitHub.
WOAH @BytedanceTalk proposed pdqsort for #golang 1.19 https://github.com/golang/go/issues/50154
Change: https://github.com/golang/go/commit/72e77a7f41bbf45d466119444307fd3ae996e257
Change: https://github.com/golang/go/commit/72e77a7f41bbf45d466119444307fd3ae996e257
GitHub
sort: use pdqsort · Issue #50154 · golang/go
Abstract From ByteDance Programming Language Team We suggest using pdqsort in the sort package. The new algorithm is mainly based on pattern-defeating quicksort by Orson Peters. Both Rust and C++ B...
🇺🇦 Go performance channel
WOAH @BytedanceTalk proposed pdqsort for #golang 1.19 https://github.com/golang/go/issues/50154 Change: https://github.com/golang/go/commit/72e77a7f41bbf45d466119444307fd3ae996e257
pdqsort author: https://news.ycombinator.com/item?id=31107187
Also a great article by @Danlark1 Changing std:sort at Google’s scale and beyond
https://news.ycombinator.com/item?id=31098822
Also a great article by @Danlark1 Changing std:sort at Google’s scale and beyond
https://news.ycombinator.com/item?id=31098822
By an accident have found a page where you can see all #golang perf-related issue and their progress https://github.com/orgs/golang/projects/8/views/1
As I understand it's a @github feature to have a better view of issues. Might be useful.
(no idea what it's not visible on Golang Projects tab)
As I understand it's a @github feature to have a better view of issues. Might be useful.
(no idea what it's not visible on Golang Projects tab)
GitHub
Go Compiler / Runtime • golang
Go Runtime team project tracking (experimental).
Shaving 40% Off Google’s B-Tree Implementation with #golang Generics by @michalmatczuk @ScyllaDB https://www.scylladb.com/2022/04/27/shaving-40-off-googles-b-tree-implementation-with-go-generics/
ScyllaDB
Shaving 40% Off Google’s B-Tree Implementation with Go Generics - ScyllaDB
Go generics are a new way to improve performance in #golang. Let's see what effect generics had on Google's B-tree implementation.
🇺🇦 Go performance channel
Shaving 40% Off Google’s B-Tree Implementation with #golang Generics by @michalmatczuk @ScyllaDB https://www.scylladb.com/2022/04/27/shaving-40-off-googles-b-tree-implementation-with-go-generics/
GitHub
Generic approach · Issue #41 · google/btree
With support for generics, we can replace interfaces with generic types. The use of generics avoids variables escaping to heap when calling the B-tree functions yielding 20-30% improvement. Below a...
Long-awaited #golang soft memory limit:
The core feature has landed, but I still need to land a few new metrics to help support visibility into this. by @mknyswe
https://github.com/golang/go/issues/48409
The core feature has landed, but I still need to land a few new metrics to help support visibility into this. by @mknyswe
https://github.com/golang/go/issues/48409
GitHub
runtime/debug: soft memory limit · Issue #48409 · golang/go
Proposal: Soft memory limit Author: Michael Knyszek Summary I propose a new option for tuning the behavior of the Go garbage collector by setting a soft memory limit on the total amount of memory t...
Aaaaaaand we will get atomic wrappers in #golang 1.19.
IMO, that's awesome 💕
https://github.com/golang/go/commit/ffe48e00adf3078944015186819a1ed5c6aa8bec
IMO, that's awesome 💕
https://github.com/golang/go/commit/ffe48e00adf3078944015186819a1ed5c6aa8bec
GitHub
sync/atomic: add typed atomic values · golang/go@ffe48e0
These implementations will inline to the lower-level primitives,
but they hide the underlying values so that all accesses are
forced to use the atomic APIs. They also allow the use of shorter
names...
but they hide the underlying values so that all accesses are
forced to use the atomic APIs. They also allow the use of shorter
names...
From "#golang compiler and runtime meeting notes":
> do we want to have an external monthly version of this meeting?
(please, don't comment on the issue, everything will be deleted as a spam)
https://github.com/golang/go/issues/43930#issuecomment-1122745144
I hope that making this meeting public will make @golang team life easier because feedback loop will be shorter with more eyes on 1 thing.
> do we want to have an external monthly version of this meeting?
for { println("YES") }
(please, don't comment on the issue, everything will be deleted as a spam)
https://github.com/golang/go/issues/43930#issuecomment-1122745144
I hope that making this meeting public will make @golang team life easier because feedback loop will be shorter with more eyes on 1 thing.
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...
Changing one character wildly improved our application's performance (tldr: s/<=/< 😉)
https://segment.com/blog/changing-one-character-improved-app-performance/ by @segment #golang
https://segment.com/blog/changing-one-character-improved-app-performance/ by @segment #golang
Segment
Changing one character wildly improved our application's performance
Sometimes the only thing standing between your application and 3x better performance is a letter or two.