mirror of
				https://github.com/TeaOSLab/EdgeAPI.git
				synced 2025-11-04 16:00:24 +08:00 
			
		
		
		
	
		
			
	
	
		
			42 lines
		
	
	
		
			807 B
		
	
	
	
		
			Go
		
	
	
	
	
	
		
		
			
		
	
	
			42 lines
		
	
	
		
			807 B
		
	
	
	
		
			Go
		
	
	
	
	
	
| 
								 | 
							
								// Copyright 2021 Liuxiangchao iwind.liu@gmail.com. All rights reserved.
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								package zero
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								import (
							 | 
						||
| 
								 | 
							
									"runtime"
							 | 
						||
| 
								 | 
							
									"testing"
							 | 
						||
| 
								 | 
							
								)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								func TestZero_Chan(t *testing.T) {
							 | 
						||
| 
								 | 
							
									var stat1 = &runtime.MemStats{}
							 | 
						||
| 
								 | 
							
									runtime.ReadMemStats(stat1)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									var m = make(chan Zero, 2_000_000)
							 | 
						||
| 
								 | 
							
									for i := 0; i < 1_000_000; i++ {
							 | 
						||
| 
								 | 
							
										m <- New()
							 | 
						||
| 
								 | 
							
									}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									var stat2 = &runtime.MemStats{}
							 | 
						||
| 
								 | 
							
									runtime.ReadMemStats(stat2)
							 | 
						||
| 
								 | 
							
									t.Log(stat2.HeapInuse, stat1.HeapInuse, stat2.HeapInuse-stat1.HeapInuse, "B")
							 | 
						||
| 
								 | 
							
									t.Log(len(m))
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								func TestZero_Map(t *testing.T) {
							 | 
						||
| 
								 | 
							
									var stat1 = &runtime.MemStats{}
							 | 
						||
| 
								 | 
							
									runtime.ReadMemStats(stat1)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									var m = map[int]Zero{}
							 | 
						||
| 
								 | 
							
									for i := 0; i < 1_000_000; i++ {
							 | 
						||
| 
								 | 
							
										m[i] = New()
							 | 
						||
| 
								 | 
							
									}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									var stat2 = &runtime.MemStats{}
							 | 
						||
| 
								 | 
							
									runtime.ReadMemStats(stat2)
							 | 
						||
| 
								 | 
							
									t.Log((stat2.HeapInuse-stat1.HeapInuse)/1024/1024, "MB")
							 | 
						||
| 
								 | 
							
									t.Log(len(m))
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									_, ok := m[1024]
							 | 
						||
| 
								 | 
							
									t.Log(ok)
							 | 
						||
| 
								 | 
							
								}
							 |