I’m pretty sure they will be in the data section, for non interface/pointer types which is even better than the stack.
> On Aug 4, 2019, at 7:16 PM, burak serdar <bser...@computer.org> wrote: > >> On Sun, Aug 4, 2019 at 6:06 PM Robert Engels <reng...@ix.netcom.com> wrote: >> >> Just because you declare in functions and pass around does not have anything >> to do if it will be on the heap or the stack. It depends on if the compiler >> can detect if the object does not “escape”. > > Right. However, if the variables are declared globally (as I > understand it is the first case in the post), then there is no chance > that they will be on stack. > >> >>>> On Aug 4, 2019, at 5:35 PM, burak serdar <bser...@computer.org> wrote: >>>> >>>> On Sun, Aug 4, 2019 at 11:19 AM B Carr <buc...@gmail.com> wrote: >>>> >>>> Concept observation. Could use some amplification from the congregants, >>>> please... >>>> >>>> I'm learning about Go. >>>> >>>> My webserver program had lots of package level vars and only two, small >>>> structs. I set a dozen webpages to refresh very busy data calculations >>>> every 6 seconds. Over the course of an hour, looking at the pprof output >>>> for 'alloc' & 'heapAlloc' it looked like the GC was very busy and >>>> collected >6 GiB of stuff. It looked like it would have continued >>>> increasing into infinity. Even during that time, the GC rarely went over >>>> 10ms active times. >>>> >>>> I got rid of all the package level vars and put them inside of structs and >>>> pass around the struct values to the functions as needed. Using the same >>>> test setup above, I set a dozen webpages to refresh very busy data >>>> calculations every 6 seconds. Over the course of an hour, looking at the >>>> pprof output for 'alloc' & 'heapAlloc' it looked like the GC just loafed >>>> along and collected <10 MiB of stuff. And that number was pretty level. >>>> The GC was showing mostly zero nanosecond times. >>> >>> The GC activity will depend on what goes to the heap. I can't say I >>> understand your program structure from your description, but it sounds >>> like in the first case you have global variables, but in the second >>> case you started declaring variables in your functions and passed them >>> around. If that's really the case, then GC will have less to do in the >>> second case as most of the memory will be allocated on the stack, and >>> GC will not be involved in cleaning them up. >>> >>>> >>>> I didn't do any timing testing, but the speediness of all the webpages >>>> felt about the same in both test cases. >>>> >>>> I have a notion about what I'm seeing. Anyone care to increase my level of >>>> understanding? Are my interpretations about what pprof is showing me >>>> accurate? >>>> >>>> (ps - a big thank you to Burak Serdar who, in a previous thread, showed me >>>> something I hadn't considered and put me on the path to making my >>>> webserver program successfully concurrent!) >>>> >>>> TIA, >>>> >>>> Bucky >>>> >>>> -- >>>> 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/fb49d5bb-f795-4ca3-af5c-d883aabcf1af%40googlegroups.com. >>> >>> -- >>> 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/CAMV2RqrEB7nOOx-CytFXYiTu7s5PosPZP%3D1ugJsE6MxK6KtwJA%40mail.gmail.com. >> >> -- >> 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/F94EF844-937B-47AF-BC45-DACCCB267107%40ix.netcom.com. -- 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/81ADF621-1311-437B-BA01-60CB4E1856A4%40ix.netcom.com.