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 

Reply via email to