Unless it is an in memory database, I would expect the IO costs to dwarf the cpu costs, but I guess a lot depends on how you define ‘analytical processing’.
In my experience, “out of the box” performance of Go routines in IO processing is outstanding. For the cpu bound case, I think with threads, cpu assignments (cpuset), etc. you can probably create a higher performing system in some cases - but it’s a lot of work. Even without that, I think the scheduler in most Linux systems is more mature than the Go scheduler, and makes better choices for cache affinity, etc. It’s very hard to design a high performance cpu bound system that runs on a general purpose OS or language/platform. Without knowledge of the olap db design it is very hard to make a recommendation. This is some suggested reading to help you in your journey https://dave.cheney.net/high-performance-go-workshop/dotgo-paris.html > On Feb 2, 2021, at 12:07 AM, 颜文泽 <nnsmgs...@gmail.com> wrote: > > I don't know much about the internal implementation of golang, sorry. I was a > c programmer and I tried to implement the original logic (olap database) by > using routine as a thread replacement. But I found that I would encounter > bottlenecks, and I don't know how to solve them. Maybe I should study the > implementation of routine before I can write the right code. > > 在2021年2月2日星期二 UTC+8 下午12:21:44<ren...@ix.netcom.com> 写道: > You wrote “I found that cache misses from routines switching is also a > headache”. > > They would not be switching if they are cpu bound and there are less of than > number of cpus. Remember too that you need some % of the cpus to execute the > runtime GC code and other housekeeping. > > > On Feb 1, 2021, at 10:04 PM, 颜文泽 <nnsm...@gmail.com > > <applewebdata://17718051-0DC0-4CA0-9D2D-F99B85591934>> wrote: > > > > I found that cache misses from routines switching is also a headache > > > -- > You received this message because you are subscribed to the Google Groups > "golang-nuts" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to golang-nuts+unsubscr...@googlegroups.com > <mailto:golang-nuts+unsubscr...@googlegroups.com>. > To view this discussion on the web visit > https://groups.google.com/d/msgid/golang-nuts/35bccad0-64a9-4796-bc3f-a9cdb8c82961n%40googlegroups.com > > <https://groups.google.com/d/msgid/golang-nuts/35bccad0-64a9-4796-bc3f-a9cdb8c82961n%40googlegroups.com?utm_medium=email&utm_source=footer>. -- You received this message because you are subscribed to the Google Groups "golang-nuts" group. To unsubscribe from this group and stop receiving emails from it, send an email to golang-nuts+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/golang-nuts/37333ACA-7921-433B-B400-493A27B42754%40ix.netcom.com.