github.com/elastic/gosigar@v0.14.3/examples/free/free.go (about)

     1  // Copyright (c) 2012 VMware, Inc.
     2  
     3  package main
     4  
     5  import (
     6  	"fmt"
     7  	"os"
     8  
     9  	"github.com/elastic/gosigar"
    10  )
    11  
    12  func format(val uint64) uint64 {
    13  	return val / 1024
    14  }
    15  
    16  func main() {
    17  	mem := gosigar.Mem{}
    18  	swap := gosigar.Swap{}
    19  
    20  	mem.Get()
    21  	swap.Get()
    22  
    23  	fmt.Fprintf(os.Stdout, "%18s %10s %10s\n",
    24  		"total", "used", "free")
    25  
    26  	fmt.Fprintf(os.Stdout, "Mem:    %10d %10d %10d\n",
    27  		format(mem.Total), format(mem.Used), format(mem.Free))
    28  
    29  	fmt.Fprintf(os.Stdout, "-/+ buffers/cache: %10d %10d\n",
    30  		format(mem.ActualUsed), format(mem.ActualFree))
    31  
    32  	fmt.Fprintf(os.Stdout, "Swap:   %10d %10d %10d\n",
    33  		format(swap.Total), format(swap.Used), format(swap.Free))
    34  }