Re: [go-nuts] About the efficency of modifying map elements.

2021-03-17 Thread Robert Engels
Generics will solve this. > On Mar 17, 2021, at 4:23 PM, Matthew Holiday > wrote: > >  > Isn't this really just another form of issue 3117? > > >> On Wed, Mar 17, 2021 at 3:19 PM 'Axel Wagner' via golang-nuts >> wrote: >>> On Wed, Mar 17, 2021 at 10:06 PM tapi...@gmail.com >>> wrote: >>

Re: [go-nuts] About the efficency of modifying map elements.

2021-03-17 Thread 'Axel Wagner' via golang-nuts
To be clear: My point was that it should be neither. It should be a transparent compiler optimization :) On Wed, Mar 17, 2021 at 10:46 PM tapi...@gmail.com wrote: > > > On Wednesday, March 17, 2021 at 5:19:55 PM UTC-4 axel.wa...@googlemail.com > wrote: > >> On Wed, Mar 17, 2021 at 10:06 PM tapi.

Re: [go-nuts] About the efficency of modifying map elements.

2021-03-17 Thread tapi...@gmail.com
On Wednesday, March 17, 2021 at 5:23:57 PM UTC-4 matthew...@nytimes.com wrote: > Isn't this really just another form of issue 3117 > ? > Some of, but really different. > > > On Wed, Mar 17, 2021 at 3:19 PM 'Axel Wagner' via golang-nuts < > golan...

Re: [go-nuts] About the efficency of modifying map elements.

2021-03-17 Thread tapi...@gmail.com
On Wednesday, March 17, 2021 at 5:19:55 PM UTC-4 axel.wa...@googlemail.com wrote: > On Wed, Mar 17, 2021 at 10:06 PM tapi...@gmail.com > wrote: > >> For simple scenarios, compiler optimizations might be possible. >> But for some complicate ones, it is hard for compiler to do optimizations. >>

Re: [go-nuts] About the efficency of modifying map elements.

2021-03-17 Thread Matthew Holiday
Isn't this really just another form of issue 3117 ? On Wed, Mar 17, 2021 at 3:19 PM 'Axel Wagner' via golang-nuts < golang-nuts@googlegroups.com> wrote: > On Wed, Mar 17, 2021 at 10:06 PM tapi...@gmail.com > wrote: > >> For simple scenarios, compiler op

Re: [go-nuts] About the efficency of modifying map elements.

2021-03-17 Thread 'Axel Wagner' via golang-nuts
On Wed, Mar 17, 2021 at 10:06 PM tapi...@gmail.com wrote: > For simple scenarios, compiler optimizations might be possible. > But for some complicate ones, it is hard for compiler to do optimizations. > For example, the element is modified by an function between the map > element getter and sette

Re: [go-nuts] About the efficency of modifying map elements.

2021-03-17 Thread tapi...@gmail.com
For simple scenarios, compiler optimizations might be possible. But for some complicate ones, it is hard for compiler to do optimizations. For example, the element is modified by an function between the map element getter and setter and the behavior of the function is hard to determined at compile

Re: [go-nuts] About the efficency of modifying map elements.

2021-03-17 Thread 'Axel Wagner' via golang-nuts
Yes, Jan's link also pretty clearly shows that this optimization isn't currently happening :) Sorry for the noise. I still believe it should be an optimization in the compiler, not a language-level feature. On Wed, Mar 17, 2021 at 9:44 PM tapi...@gmail.com wrote: > > I found this performance dif

Re: [go-nuts] About the efficency of modifying map elements.

2021-03-17 Thread tapi...@gmail.com
I found this performance difference by benchmarking the two: func IntAdd(words [][]byte) map[string]int { var m = make(map[string]int) for _, w := range words { m[string(w)] = m[string(w)] + 1 } return m } func IntIncrement(words [][]byte) map[string]int { va

Re: [go-nuts] About the efficency of modifying map elements.

2021-03-17 Thread Jan Mercl
On Wed, Mar 17, 2021 at 9:18 PM tapi...@gmail.com wrote: > Now, to modify a map element, especially the element type is not a basic > type, two hashes are needed to compute. https://github.com/golang/go/issues/5147 -- You received this message because you are subscribed to the Google Groups

Re: [go-nuts] About the efficency of modifying map elements.

2021-03-17 Thread 'Axel Wagner' via golang-nuts
Hi, have you verified this using a disassembler or benchmarks? Just asking because this is, as far as I'm concerned, a job for the compiler, to eliminate the overhead automatically - and I could well imagine that it's already doing it. There definitely shouldn't be a new language construct for thi

[go-nuts] About the efficency of modifying map elements.

2021-03-17 Thread tapi...@gmail.com
Now, to modify a map element, especially the element type is not a basic type, two hashes are needed to compute. This is often unnecessary and inefficient. For example: package main type T struct{ N int // ... more fields } func main() { var m = map[stri