5 ms·
I find the simplest way to performance tune Go programs is to wait for the next release.
by accnumnplus1 8y ago
I find the simplest way to performance tune Go programs is to wait for the next release.
- dnautics 8y agoI wonder are people really using go where performance is bottlenecking on code (and not say network)?
- fmpwizard 8y agoAbout 6 years ago we adopted Scala for our server side language, and for the past 4 years we have been migrating old code that was CPU/memory hungry to go and getting very good results. All new code, if it's going to be cpu/memory intense, we write it in Go. For non C/C++ developers, Go is much easier to work with and get performance benefits that before would only be possible by porting to C, or you end up not writing idiomatic Scala, which defeats the purpose of using Scala (imho)
- dnautics 8y agoThat's fine, but I'm genuinely curious as to what you're finding to be cpu/memory intense. I don't know enough about scala to know if there isn't something the jvm is running poorly because "it wasn't designed to be that way". I deploy on elixir, and everything is not very big and quite acceptably performant even though I have two containerized instances of beam on an amazon t2 micro. Ooh for me, more than 50 connections a second would be unusual, but also the service really should never die.
- artursapek 8y agoIn most cases likely not, but there are some people using Go for CPU-bound stuff. There was a guy at gophercon yesterday who did a pretty cool demo of a raytracer he wrote in Go. He talked about the 15x performance improvement it had over using Javascript. I would definitely not choose to build a raytracer in Javascript, and probably not even in Go either. C, C++, Rust, are probably the most common choices made by people who are building something that is seriously CPU-bound.
- ebikelaw 8y agoI guess you meant outside of google? Google's logs analysis is often done in "Lingo" which stands for Logs In Go. I assure you that logs analysis is very CPU bound. http://www.unofficialgoogledatascience.com/2015/12/replacing-sawzall-case-study-in-domain.html http://www.unofficialgoogledatascience.com/2015/12/replacing...
- akmittal 8y agoperformance improvements untill 1.9 were great, but last few releases performance improvements were meh. Maybe we have reached the peak.
- uluyol 8y agoThere used to be a lot of low-hanging fruit. Now bigger GC and compiler changes are probably necessary to get noticeable wins. The compiler still lacks mid-stack inlining and de-virtualization which would probably give a noticeable performance boost. Of course, maybe by then, gccgo/gollvm will have just as good a runtime and be the way to go if you want performance. Or maybe they are just prioritizing non-performance tasks like debugging and Go 2.