On Mon, 7 Oct 2019 00:54:32 -0700 (PDT) miha.vrhov...@gmail.com wrote: > Hi guys, > > We are having a very weird problem, where the process memory keeps > rising, but both the pprof and valgrind report no memory leaks. But > the RSS just keeps rising.The C part is in external so library > > To be more exact, the pprof when the process becomes idle reports a > few megabytes used and the Valgrind reports 88bytes lost(this are > global objects) But the RSS for example is ~1G and virtual 4G+ > I've run also run the app with the GODEBUG=madvdontneed=1,gctrace=1 > but madvdontneed doesn't seem to help. > > If I describe the MO of communicating with the library's API (all > memory is allocated on the library side). > > for { > * initialize the processor > * say to the library to create the blob of size x on it's side > * convert the returned pointer to a fake slice (code below) > * copy data to the fake slice > * instruct processor to do it's thing (e.g make > calculations/compress the data,...) > * process the data on Go side (depending on the processor this > either makes a copy of the data or creates a fake slice from it) > * destroy the processor (this frees the memory on the library's > side) > * upload the data somewhere > } > > func cVoidPtrToByteSlice(data unsafe.Pointer, size int, bytes > *[]byte) { header := (*reflect.SliceHeader)(unsafe.Pointer(bytes)) > header.Data = uintptr(data) > header.Len = size > header.Cap = size > } > > BR, > Miha >
Hi, can you try to run your program with GOGC=10 environment ? -- Jamil Djadala -- 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/20191007110422.325e6ae5%40bee.datamax.bg.