I run it at an 8 cores 16GB machine and it occupies all cpu cores it could.

1. It is ~95% cpu intensive and with ~5% network communications.

2. The codebase is huge and has more than 300 thousands of lines of code 
(even didn't count the third party library yet).

3. The tool pprof tells nearly 50% percent of the time is spending on the 
runtime, something related to gc, mallocgc, memclrNoHeapPointers, and so on.

4. It has ~100 million dynamic objects.

Do you guys have some good advice to optimize the performance?

One idea that occurs to me is to do something like sync.Pool to buffer some 
most frequently allocated and freed objects. But the problem is I didn't 
manage to find a golang tool to find such objects. The runtime provides api 
to get the amount of objects but it didn't provide api to get the detailed 
statistics of all objects. Please correct me if I'm wrong. Thanks a lot :-)

-- 
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/950ce206-55a7-4eef-bab5-d4ffe0384b98n%40googlegroups.com.

Reply via email to