286 lines
		
	
	
		
			5.2 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
		
		
			
		
	
	
			286 lines
		
	
	
		
			5.2 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
| 
								 | 
							
								Memory usage
							 | 
						||
| 
								 | 
							
								============
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								(Highly unscientific.)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								Command used to gather static memory usage:
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								```sh
							 | 
						||
| 
								 | 
							
								grep ^Vm "/proc/$(ps fax | grep [m]etrics-bench | awk '{print $1}')/status"
							 | 
						||
| 
								 | 
							
								```
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								Program used to gather baseline memory usage:
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								```go
							 | 
						||
| 
								 | 
							
								package main
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								import "time"
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								func main() {
							 | 
						||
| 
								 | 
							
									time.Sleep(600e9)
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								```
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								Baseline
							 | 
						||
| 
								 | 
							
								--------
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								```
							 | 
						||
| 
								 | 
							
								VmPeak:    42604 kB
							 | 
						||
| 
								 | 
							
								VmSize:    42604 kB
							 | 
						||
| 
								 | 
							
								VmLck:         0 kB
							 | 
						||
| 
								 | 
							
								VmHWM:      1120 kB
							 | 
						||
| 
								 | 
							
								VmRSS:      1120 kB
							 | 
						||
| 
								 | 
							
								VmData:    35460 kB
							 | 
						||
| 
								 | 
							
								VmStk:       136 kB
							 | 
						||
| 
								 | 
							
								VmExe:      1020 kB
							 | 
						||
| 
								 | 
							
								VmLib:      1848 kB
							 | 
						||
| 
								 | 
							
								VmPTE:        36 kB
							 | 
						||
| 
								 | 
							
								VmSwap:        0 kB
							 | 
						||
| 
								 | 
							
								```
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								Program used to gather metric memory usage (with other metrics being similar):
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								```go
							 | 
						||
| 
								 | 
							
								package main
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								import (
							 | 
						||
| 
								 | 
							
									"fmt"
							 | 
						||
| 
								 | 
							
									"metrics"
							 | 
						||
| 
								 | 
							
									"time"
							 | 
						||
| 
								 | 
							
								)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								func main() {
							 | 
						||
| 
								 | 
							
									fmt.Sprintf("foo")
							 | 
						||
| 
								 | 
							
									metrics.NewRegistry()
							 | 
						||
| 
								 | 
							
									time.Sleep(600e9)
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								```
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								1000 counters registered
							 | 
						||
| 
								 | 
							
								------------------------
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								```
							 | 
						||
| 
								 | 
							
								VmPeak:    44016 kB
							 | 
						||
| 
								 | 
							
								VmSize:    44016 kB
							 | 
						||
| 
								 | 
							
								VmLck:         0 kB
							 | 
						||
| 
								 | 
							
								VmHWM:      1928 kB
							 | 
						||
| 
								 | 
							
								VmRSS:      1928 kB
							 | 
						||
| 
								 | 
							
								VmData:    36868 kB
							 | 
						||
| 
								 | 
							
								VmStk:       136 kB
							 | 
						||
| 
								 | 
							
								VmExe:      1024 kB
							 | 
						||
| 
								 | 
							
								VmLib:      1848 kB
							 | 
						||
| 
								 | 
							
								VmPTE:        40 kB
							 | 
						||
| 
								 | 
							
								VmSwap:        0 kB
							 | 
						||
| 
								 | 
							
								```
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								**1.412 kB virtual, TODO 0.808 kB resident per counter.**
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								100000 counters registered
							 | 
						||
| 
								 | 
							
								--------------------------
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								```
							 | 
						||
| 
								 | 
							
								VmPeak:    55024 kB
							 | 
						||
| 
								 | 
							
								VmSize:    55024 kB
							 | 
						||
| 
								 | 
							
								VmLck:         0 kB
							 | 
						||
| 
								 | 
							
								VmHWM:     12440 kB
							 | 
						||
| 
								 | 
							
								VmRSS:     12440 kB
							 | 
						||
| 
								 | 
							
								VmData:    47876 kB
							 | 
						||
| 
								 | 
							
								VmStk:       136 kB
							 | 
						||
| 
								 | 
							
								VmExe:      1024 kB
							 | 
						||
| 
								 | 
							
								VmLib:      1848 kB
							 | 
						||
| 
								 | 
							
								VmPTE:        64 kB
							 | 
						||
| 
								 | 
							
								VmSwap:        0 kB
							 | 
						||
| 
								 | 
							
								```
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								**0.1242 kB virtual, 0.1132 kB resident per counter.**
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								1000 gauges registered
							 | 
						||
| 
								 | 
							
								----------------------
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								```
							 | 
						||
| 
								 | 
							
								VmPeak:    44012 kB
							 | 
						||
| 
								 | 
							
								VmSize:    44012 kB
							 | 
						||
| 
								 | 
							
								VmLck:         0 kB
							 | 
						||
| 
								 | 
							
								VmHWM:      1928 kB
							 | 
						||
| 
								 | 
							
								VmRSS:      1928 kB
							 | 
						||
| 
								 | 
							
								VmData:    36868 kB
							 | 
						||
| 
								 | 
							
								VmStk:       136 kB
							 | 
						||
| 
								 | 
							
								VmExe:      1020 kB
							 | 
						||
| 
								 | 
							
								VmLib:      1848 kB
							 | 
						||
| 
								 | 
							
								VmPTE:        40 kB
							 | 
						||
| 
								 | 
							
								VmSwap:        0 kB
							 | 
						||
| 
								 | 
							
								```
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								**1.408 kB virtual, 0.808 kB resident per counter.**
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								100000 gauges registered
							 | 
						||
| 
								 | 
							
								------------------------
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								```
							 | 
						||
| 
								 | 
							
								VmPeak:    55020 kB
							 | 
						||
| 
								 | 
							
								VmSize:    55020 kB
							 | 
						||
| 
								 | 
							
								VmLck:         0 kB
							 | 
						||
| 
								 | 
							
								VmHWM:     12432 kB
							 | 
						||
| 
								 | 
							
								VmRSS:     12432 kB
							 | 
						||
| 
								 | 
							
								VmData:    47876 kB
							 | 
						||
| 
								 | 
							
								VmStk:       136 kB
							 | 
						||
| 
								 | 
							
								VmExe:      1020 kB
							 | 
						||
| 
								 | 
							
								VmLib:      1848 kB
							 | 
						||
| 
								 | 
							
								VmPTE:        60 kB
							 | 
						||
| 
								 | 
							
								VmSwap:        0 kB
							 | 
						||
| 
								 | 
							
								```
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								**0.12416 kB virtual, 0.11312 resident per gauge.**
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								1000 histograms with a uniform sample size of 1028
							 | 
						||
| 
								 | 
							
								--------------------------------------------------
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								```
							 | 
						||
| 
								 | 
							
								VmPeak:    72272 kB
							 | 
						||
| 
								 | 
							
								VmSize:    72272 kB
							 | 
						||
| 
								 | 
							
								VmLck:         0 kB
							 | 
						||
| 
								 | 
							
								VmHWM:     16204 kB
							 | 
						||
| 
								 | 
							
								VmRSS:     16204 kB
							 | 
						||
| 
								 | 
							
								VmData:    65100 kB
							 | 
						||
| 
								 | 
							
								VmStk:       136 kB
							 | 
						||
| 
								 | 
							
								VmExe:      1048 kB
							 | 
						||
| 
								 | 
							
								VmLib:      1848 kB
							 | 
						||
| 
								 | 
							
								VmPTE:        80 kB
							 | 
						||
| 
								 | 
							
								VmSwap:        0 kB
							 | 
						||
| 
								 | 
							
								```
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								**29.668 kB virtual, TODO 15.084 resident per histogram.**
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								10000 histograms with a uniform sample size of 1028
							 | 
						||
| 
								 | 
							
								---------------------------------------------------
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								```
							 | 
						||
| 
								 | 
							
								VmPeak:   256912 kB
							 | 
						||
| 
								 | 
							
								VmSize:   256912 kB
							 | 
						||
| 
								 | 
							
								VmLck:         0 kB
							 | 
						||
| 
								 | 
							
								VmHWM:    146204 kB
							 | 
						||
| 
								 | 
							
								VmRSS:    146204 kB
							 | 
						||
| 
								 | 
							
								VmData:   249740 kB
							 | 
						||
| 
								 | 
							
								VmStk:       136 kB
							 | 
						||
| 
								 | 
							
								VmExe:      1048 kB
							 | 
						||
| 
								 | 
							
								VmLib:      1848 kB
							 | 
						||
| 
								 | 
							
								VmPTE:       448 kB
							 | 
						||
| 
								 | 
							
								VmSwap:        0 kB
							 | 
						||
| 
								 | 
							
								```
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								**21.4308 kB virtual, 14.5084 kB resident per histogram.**
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								50000 histograms with a uniform sample size of 1028
							 | 
						||
| 
								 | 
							
								---------------------------------------------------
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								```
							 | 
						||
| 
								 | 
							
								VmPeak:   908112 kB
							 | 
						||
| 
								 | 
							
								VmSize:   908112 kB
							 | 
						||
| 
								 | 
							
								VmLck:         0 kB
							 | 
						||
| 
								 | 
							
								VmHWM:    645832 kB
							 | 
						||
| 
								 | 
							
								VmRSS:    645588 kB
							 | 
						||
| 
								 | 
							
								VmData:   900940 kB
							 | 
						||
| 
								 | 
							
								VmStk:       136 kB
							 | 
						||
| 
								 | 
							
								VmExe:      1048 kB
							 | 
						||
| 
								 | 
							
								VmLib:      1848 kB
							 | 
						||
| 
								 | 
							
								VmPTE:      1716 kB
							 | 
						||
| 
								 | 
							
								VmSwap:     1544 kB
							 | 
						||
| 
								 | 
							
								```
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								**17.31016 kB virtual, 12.88936 kB resident per histogram.**
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								1000 histograms with an exponentially-decaying sample size of 1028 and alpha of 0.015
							 | 
						||
| 
								 | 
							
								-------------------------------------------------------------------------------------
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								```
							 | 
						||
| 
								 | 
							
								VmPeak:    62480 kB
							 | 
						||
| 
								 | 
							
								VmSize:    62480 kB
							 | 
						||
| 
								 | 
							
								VmLck:         0 kB
							 | 
						||
| 
								 | 
							
								VmHWM:     11572 kB
							 | 
						||
| 
								 | 
							
								VmRSS:     11572 kB
							 | 
						||
| 
								 | 
							
								VmData:    55308 kB
							 | 
						||
| 
								 | 
							
								VmStk:       136 kB
							 | 
						||
| 
								 | 
							
								VmExe:      1048 kB
							 | 
						||
| 
								 | 
							
								VmLib:      1848 kB
							 | 
						||
| 
								 | 
							
								VmPTE:        64 kB
							 | 
						||
| 
								 | 
							
								VmSwap:        0 kB
							 | 
						||
| 
								 | 
							
								```
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								**19.876 kB virtual, 10.452 kB resident per histogram.**
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								10000 histograms with an exponentially-decaying sample size of 1028 and alpha of 0.015
							 | 
						||
| 
								 | 
							
								--------------------------------------------------------------------------------------
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								```
							 | 
						||
| 
								 | 
							
								VmPeak:   153296 kB
							 | 
						||
| 
								 | 
							
								VmSize:   153296 kB
							 | 
						||
| 
								 | 
							
								VmLck:         0 kB
							 | 
						||
| 
								 | 
							
								VmHWM:    101176 kB
							 | 
						||
| 
								 | 
							
								VmRSS:    101176 kB
							 | 
						||
| 
								 | 
							
								VmData:   146124 kB
							 | 
						||
| 
								 | 
							
								VmStk:       136 kB
							 | 
						||
| 
								 | 
							
								VmExe:      1048 kB
							 | 
						||
| 
								 | 
							
								VmLib:      1848 kB
							 | 
						||
| 
								 | 
							
								VmPTE:       240 kB
							 | 
						||
| 
								 | 
							
								VmSwap:        0 kB
							 | 
						||
| 
								 | 
							
								```
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								**11.0692 kB virtual, 10.0056 kB resident per histogram.**
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								50000 histograms with an exponentially-decaying sample size of 1028 and alpha of 0.015
							 | 
						||
| 
								 | 
							
								--------------------------------------------------------------------------------------
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								```
							 | 
						||
| 
								 | 
							
								VmPeak:   557264 kB
							 | 
						||
| 
								 | 
							
								VmSize:   557264 kB
							 | 
						||
| 
								 | 
							
								VmLck:         0 kB
							 | 
						||
| 
								 | 
							
								VmHWM:    501056 kB
							 | 
						||
| 
								 | 
							
								VmRSS:    501056 kB
							 | 
						||
| 
								 | 
							
								VmData:   550092 kB
							 | 
						||
| 
								 | 
							
								VmStk:       136 kB
							 | 
						||
| 
								 | 
							
								VmExe:      1048 kB
							 | 
						||
| 
								 | 
							
								VmLib:      1848 kB
							 | 
						||
| 
								 | 
							
								VmPTE:      1032 kB
							 | 
						||
| 
								 | 
							
								VmSwap:        0 kB
							 | 
						||
| 
								 | 
							
								```
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								**10.2932 kB virtual, 9.99872 kB resident per histogram.**
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								1000 meters
							 | 
						||
| 
								 | 
							
								-----------
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								```
							 | 
						||
| 
								 | 
							
								VmPeak:    74504 kB
							 | 
						||
| 
								 | 
							
								VmSize:    74504 kB
							 | 
						||
| 
								 | 
							
								VmLck:         0 kB
							 | 
						||
| 
								 | 
							
								VmHWM:     24124 kB
							 | 
						||
| 
								 | 
							
								VmRSS:     24124 kB
							 | 
						||
| 
								 | 
							
								VmData:    67340 kB
							 | 
						||
| 
								 | 
							
								VmStk:       136 kB
							 | 
						||
| 
								 | 
							
								VmExe:      1040 kB
							 | 
						||
| 
								 | 
							
								VmLib:      1848 kB
							 | 
						||
| 
								 | 
							
								VmPTE:        92 kB
							 | 
						||
| 
								 | 
							
								VmSwap:        0 kB
							 | 
						||
| 
								 | 
							
								```
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								**31.9 kB virtual, 23.004 kB resident per meter.**
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								10000 meters
							 | 
						||
| 
								 | 
							
								------------
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								```
							 | 
						||
| 
								 | 
							
								VmPeak:   278920 kB
							 | 
						||
| 
								 | 
							
								VmSize:   278920 kB
							 | 
						||
| 
								 | 
							
								VmLck:         0 kB
							 | 
						||
| 
								 | 
							
								VmHWM:    227300 kB
							 | 
						||
| 
								 | 
							
								VmRSS:    227300 kB
							 | 
						||
| 
								 | 
							
								VmData:   271756 kB
							 | 
						||
| 
								 | 
							
								VmStk:       136 kB
							 | 
						||
| 
								 | 
							
								VmExe:      1040 kB
							 | 
						||
| 
								 | 
							
								VmLib:      1848 kB
							 | 
						||
| 
								 | 
							
								VmPTE:       488 kB
							 | 
						||
| 
								 | 
							
								VmSwap:        0 kB
							 | 
						||
| 
								 | 
							
								```
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								**23.6316 kB virtual, 22.618 kB resident per meter.**
							 |