github.com/luckypickle/go-ethereum-vet@v1.14.2/metrics/memory.md (about)

     1  Memory usage
     2  ============
     3  
     4  (Highly unscientific.)
     5  
     6  Command used to gather static memory usage:
     7  
     8  ```sh
     9  grep ^Vm "/proc/$(ps fax | grep [m]etrics-bench | awk '{print $1}')/status"
    10  ```
    11  
    12  Program used to gather baseline memory usage:
    13  
    14  ```go
    15  package main
    16  
    17  import "time"
    18  
    19  func main() {
    20  	time.Sleep(600e9)
    21  }
    22  ```
    23  
    24  Baseline
    25  --------
    26  
    27  ```
    28  VmPeak:    42604 kB
    29  VmSize:    42604 kB
    30  VmLck:         0 kB
    31  VmHWM:      1120 kB
    32  VmRSS:      1120 kB
    33  VmData:    35460 kB
    34  VmStk:       136 kB
    35  VmExe:      1020 kB
    36  VmLib:      1848 kB
    37  VmPTE:        36 kB
    38  VmSwap:        0 kB
    39  ```
    40  
    41  Program used to gather metric memory usage (with other metrics being similar):
    42  
    43  ```go
    44  package main
    45  
    46  import (
    47  	"fmt"
    48  	"metrics"
    49  	"time"
    50  )
    51  
    52  func main() {
    53  	fmt.Sprintf("foo")
    54  	metrics.NewRegistry()
    55  	time.Sleep(600e9)
    56  }
    57  ```
    58  
    59  1000 counters registered
    60  ------------------------
    61  
    62  ```
    63  VmPeak:    44016 kB
    64  VmSize:    44016 kB
    65  VmLck:         0 kB
    66  VmHWM:      1928 kB
    67  VmRSS:      1928 kB
    68  VmData:    36868 kB
    69  VmStk:       136 kB
    70  VmExe:      1024 kB
    71  VmLib:      1848 kB
    72  VmPTE:        40 kB
    73  VmSwap:        0 kB
    74  ```
    75  
    76  **1.412 kB virtual, TODO 0.808 kB resident per counter.**
    77  
    78  100000 counters registered
    79  --------------------------
    80  
    81  ```
    82  VmPeak:    55024 kB
    83  VmSize:    55024 kB
    84  VmLck:         0 kB
    85  VmHWM:     12440 kB
    86  VmRSS:     12440 kB
    87  VmData:    47876 kB
    88  VmStk:       136 kB
    89  VmExe:      1024 kB
    90  VmLib:      1848 kB
    91  VmPTE:        64 kB
    92  VmSwap:        0 kB
    93  ```
    94  
    95  **0.1242 kB virtual, 0.1132 kB resident per counter.**
    96  
    97  1000 gauges registered
    98  ----------------------
    99  
   100  ```
   101  VmPeak:    44012 kB
   102  VmSize:    44012 kB
   103  VmLck:         0 kB
   104  VmHWM:      1928 kB
   105  VmRSS:      1928 kB
   106  VmData:    36868 kB
   107  VmStk:       136 kB
   108  VmExe:      1020 kB
   109  VmLib:      1848 kB
   110  VmPTE:        40 kB
   111  VmSwap:        0 kB
   112  ```
   113  
   114  **1.408 kB virtual, 0.808 kB resident per counter.**
   115  
   116  100000 gauges registered
   117  ------------------------
   118  
   119  ```
   120  VmPeak:    55020 kB
   121  VmSize:    55020 kB
   122  VmLck:         0 kB
   123  VmHWM:     12432 kB
   124  VmRSS:     12432 kB
   125  VmData:    47876 kB
   126  VmStk:       136 kB
   127  VmExe:      1020 kB
   128  VmLib:      1848 kB
   129  VmPTE:        60 kB
   130  VmSwap:        0 kB
   131  ```
   132  
   133  **0.12416 kB virtual, 0.11312 resident per gauge.**
   134  
   135  1000 histograms with a uniform sample size of 1028
   136  --------------------------------------------------
   137  
   138  ```
   139  VmPeak:    72272 kB
   140  VmSize:    72272 kB
   141  VmLck:         0 kB
   142  VmHWM:     16204 kB
   143  VmRSS:     16204 kB
   144  VmData:    65100 kB
   145  VmStk:       136 kB
   146  VmExe:      1048 kB
   147  VmLib:      1848 kB
   148  VmPTE:        80 kB
   149  VmSwap:        0 kB
   150  ```
   151  
   152  **29.668 kB virtual, TODO 15.084 resident per histogram.**
   153  
   154  10000 histograms with a uniform sample size of 1028
   155  ---------------------------------------------------
   156  
   157  ```
   158  VmPeak:   256912 kB
   159  VmSize:   256912 kB
   160  VmLck:         0 kB
   161  VmHWM:    146204 kB
   162  VmRSS:    146204 kB
   163  VmData:   249740 kB
   164  VmStk:       136 kB
   165  VmExe:      1048 kB
   166  VmLib:      1848 kB
   167  VmPTE:       448 kB
   168  VmSwap:        0 kB
   169  ```
   170  
   171  **21.4308 kB virtual, 14.5084 kB resident per histogram.**
   172  
   173  50000 histograms with a uniform sample size of 1028
   174  ---------------------------------------------------
   175  
   176  ```
   177  VmPeak:   908112 kB
   178  VmSize:   908112 kB
   179  VmLck:         0 kB
   180  VmHWM:    645832 kB
   181  VmRSS:    645588 kB
   182  VmData:   900940 kB
   183  VmStk:       136 kB
   184  VmExe:      1048 kB
   185  VmLib:      1848 kB
   186  VmPTE:      1716 kB
   187  VmSwap:     1544 kB
   188  ```
   189  
   190  **17.31016 kB virtual, 12.88936 kB resident per histogram.**
   191  
   192  1000 histograms with an exponentially-decaying sample size of 1028 and alpha of 0.015
   193  -------------------------------------------------------------------------------------
   194  
   195  ```
   196  VmPeak:    62480 kB
   197  VmSize:    62480 kB
   198  VmLck:         0 kB
   199  VmHWM:     11572 kB
   200  VmRSS:     11572 kB
   201  VmData:    55308 kB
   202  VmStk:       136 kB
   203  VmExe:      1048 kB
   204  VmLib:      1848 kB
   205  VmPTE:        64 kB
   206  VmSwap:        0 kB
   207  ```
   208  
   209  **19.876 kB virtual, 10.452 kB resident per histogram.**
   210  
   211  10000 histograms with an exponentially-decaying sample size of 1028 and alpha of 0.015
   212  --------------------------------------------------------------------------------------
   213  
   214  ```
   215  VmPeak:   153296 kB
   216  VmSize:   153296 kB
   217  VmLck:         0 kB
   218  VmHWM:    101176 kB
   219  VmRSS:    101176 kB
   220  VmData:   146124 kB
   221  VmStk:       136 kB
   222  VmExe:      1048 kB
   223  VmLib:      1848 kB
   224  VmPTE:       240 kB
   225  VmSwap:        0 kB
   226  ```
   227  
   228  **11.0692 kB virtual, 10.0056 kB resident per histogram.**
   229  
   230  50000 histograms with an exponentially-decaying sample size of 1028 and alpha of 0.015
   231  --------------------------------------------------------------------------------------
   232  
   233  ```
   234  VmPeak:   557264 kB
   235  VmSize:   557264 kB
   236  VmLck:         0 kB
   237  VmHWM:    501056 kB
   238  VmRSS:    501056 kB
   239  VmData:   550092 kB
   240  VmStk:       136 kB
   241  VmExe:      1048 kB
   242  VmLib:      1848 kB
   243  VmPTE:      1032 kB
   244  VmSwap:        0 kB
   245  ```
   246  
   247  **10.2932 kB virtual, 9.99872 kB resident per histogram.**
   248  
   249  1000 meters
   250  -----------
   251  
   252  ```
   253  VmPeak:    74504 kB
   254  VmSize:    74504 kB
   255  VmLck:         0 kB
   256  VmHWM:     24124 kB
   257  VmRSS:     24124 kB
   258  VmData:    67340 kB
   259  VmStk:       136 kB
   260  VmExe:      1040 kB
   261  VmLib:      1848 kB
   262  VmPTE:        92 kB
   263  VmSwap:        0 kB
   264  ```
   265  
   266  **31.9 kB virtual, 23.004 kB resident per meter.**
   267  
   268  10000 meters
   269  ------------
   270  
   271  ```
   272  VmPeak:   278920 kB
   273  VmSize:   278920 kB
   274  VmLck:         0 kB
   275  VmHWM:    227300 kB
   276  VmRSS:    227300 kB
   277  VmData:   271756 kB
   278  VmStk:       136 kB
   279  VmExe:      1040 kB
   280  VmLib:      1848 kB
   281  VmPTE:       488 kB
   282  VmSwap:        0 kB
   283  ```
   284  
   285  **23.6316 kB virtual, 22.618 kB resident per meter.**