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.