https://codereview.appspot.com/14317043
https://groups.google.com/forum/#!topic/golang-nuts/8cXGTWGU...
I'm not saying I don't know how to change the value. I want to understand why the designers made the decision to do so.
Is it that for these dozen or so benchmarks, we end up using > 4K and < 8K of heap? So the extra 20% time is just going into a memory allocation?
P.S. Interesting that I got two snarky comments asking for a basic question about Go. Does not bode well.
stack, not heap. We are talking about changing the default stack size.
>So the extra 20% time is just going into a memory allocation?
Yes and the book keeping overhead involved at the OS and runtime levels.
Usually that shouldn't matter as much as both have small process sizes compared to OS threads or processes. But at millions of connections it starts to matter. Whatsapp for example, was running on FreeBSD and Erlang with 2M+ connections.
Erlang is an ok language with a great runtime. Elixir is much higher level language and hence more productive for teams that already know Erlang but want to write less code and build faster. Also with Erlang, static type checking not used much in Erlang and big loss unless you use dialyzer. Advantage go for compiling and running test cases laser-blindingly fast. There is a native QuickCheck framework for Erlang, and I'm sure someone wrote a go one.
This is building the tool chain and standard library on my modest machine with a cold cache:
$ time ./make.bash
real 0m42.763s
user 1m11.655s
sys 0m13.411s
Hardly a colossal burden.The guy having issues in that thread was trying to handle major load with a machine with < 8 GB of memory. All my production boxes have 128-256 GB... I had some 16 and 32 GB for a long time with no issues.
If you need more stack, the point is moot because you used more physical memory before as well, it was just split into more stack segments.
I've used mqtt for a project in the past. It worked really well but I didn't have very high messaging load for that application.