• Cristian Staretu's avatar
    syscall: NetlinkRIB, avoid allocation in loop · 8aea9a00
    Cristian Staretu authored
    NetlinkRIB is currently allocating a page sized slice of bytes in a
    for loop and it's also calling Getpagesize() in the same for loop.
    
    This CL changes NetlinkRIB to preallocate the page sized slice of
    bytes before reaching the for loop. This reduces memory allocations
    and lowers the number of calls to Getpagesize() to 1 per NetlinkRIB
    call.
    
    This CL reduces the allocated memory from 141.5 MB down to 52 MB in
    a test.
    
    LGTM=crawshaw, dave
    R=dave, dsymonds, crawshaw
    CC=bradfitz, dsymonds, golang-codereviews
    https://golang.org/cl/110920043
    8aea9a00
netlink_linux.go 4.66 KB