Skip to content

Commit d28448f

Browse files
committed
basic functions
Signed-off-by: FingerLeader <[email protected]>
1 parent 33ec434 commit d28448f

File tree

1 file changed

+53
-0
lines changed

1 file changed

+53
-0
lines changed

main.go

Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
package main
2+
3+
import (
4+
"flag"
5+
"fmt"
6+
"os"
7+
"runtime"
8+
"strconv"
9+
"syscall"
10+
"time"
11+
)
12+
13+
var (
14+
memSize string
15+
)
16+
17+
func bToMb(b uint64) uint64 {
18+
return b / 1024 / 1024
19+
}
20+
21+
func PrintMemUsage() {
22+
var m runtime.MemStats
23+
runtime.ReadMemStats(&m)
24+
fmt.Printf("Alloc = %v MiB", bToMb(m.Alloc))
25+
fmt.Printf("\tTotalAlloc = %v MiB", bToMb(m.TotalAlloc))
26+
fmt.Printf("\tSys = %v MiB", bToMb(m.Sys))
27+
fmt.Printf("\tNumGC = %v\n", m.NumGC)
28+
}
29+
30+
func init() {
31+
flag.StringVar(&memSize, "size", "0KB", "")
32+
flag.Parse()
33+
}
34+
35+
func main() {
36+
length, err := strconv.Atoi(memSize)
37+
if err != nil {
38+
// TODO
39+
print(err)
40+
}
41+
42+
data, err := syscall.Mmap(-1, 0, length*1024*1024*1024, syscall.PROT_READ|syscall.PROT_WRITE, syscall.MAP_PRIVATE|syscall.MAP_ANONYMOUS)
43+
if err != nil {
44+
// TODO
45+
print(err)
46+
}
47+
for i := 0; i < len(data); i += os.Getpagesize() {
48+
data[i] = 1
49+
}
50+
for {
51+
time.Sleep(time.Second * 2)
52+
}
53+
}

0 commit comments

Comments
 (0)