Thanks Gabriel; I will check out the tools and do some tests.

Also thanks for the info Ian. I didn't think a .so would save much in the
long run, but I want to be able to throw some numbers at my boss if I pitch
go as a C++ alternative for a project.

On Tue, Oct 24, 2017, 7:47 AM Ian Lance Taylor <i...@golang.org> wrote:

> On Mon, Oct 23, 2017 at 11:11 AM, Ben Barbour <ben.barb...@gmail.com>
> wrote:
> >
> > I wrote a small go program and each instance of it takes about 10MB when
> executed, according to top's global usage counter (not sure if this is a
> great way of measuring...). The details of what it does aren't important
> for now, but this does prompt me to ask a few questions about go memory
> usage.
>
> Using top is not a great way to measure memory usage for a Go program,
> as it will measure memory that the garbage collector has freed but
> that the runtime has not yet returned to the operating system.
>
>
> > 1) How much memory does the runtime use / preallocate? Can this be
> adjusted?
>
> It depends entirely on your program.  The simplest way to think about
> it is that the runtime imposes an overhead on the memory that your
> program allocates for its own data structures.  If you think of that
> overhead as 10%, you won't be very far wrong.
>
>
> > 2) Is any part of the runtime a shared object, or does each go program
> have a fully independent copy? Can it be made to be shared, if it isn't?
>
> Normally no part of the runtime is a shared object, and each Go
> program will have a fully independent copy.  You can make it a shared
> object on some systems by using the go build options -buildmode=shared
> and -linkshared.  Doing this will save very little memory, as the Go
> runtime is small compared to the memory allocated by a typical Go
> program.  The reasons for using shared objects are about using a
> single library update to fix (or break) a bunch of existing programs,
> not about saving memory.
>
> Ian
>

-- 
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.
For more options, visit https://groups.google.com/d/optout.

Reply via email to