From 5033afa664355211adeeb3f0121baf5e63f2b9d0 Mon Sep 17 00:00:00 2001 From: Paul Montag Date: Wed, 24 Jan 2024 22:57:34 -0600 Subject: [PATCH] Added a blog post --- config.yml | 130 ++++++++++++++++++ content/archives.md | 6 + content/posts/go_heap_allocation.md | 203 ++++++++++++++++++++++++++++ hugo.toml | 5 - static/img/me.jpg | Bin 0 -> 48569 bytes 5 files changed, 339 insertions(+), 5 deletions(-) create mode 100644 config.yml create mode 100644 content/archives.md create mode 100644 content/posts/go_heap_allocation.md delete mode 100644 hugo.toml create mode 100644 static/img/me.jpg diff --git a/config.yml b/config.yml new file mode 100644 index 0000000..c490669 --- /dev/null +++ b/config.yml @@ -0,0 +1,130 @@ +baseURL: "https://d1ngd0.github.io/blog/" +title: Paul Montag +paginate: 5 +theme: PaperMod + +enableRobotsTXT: true +buildDrafts: false +buildFuture: false +buildExpired: false + +# googleAnalytics: UA-123-45 + +# minify: + # disableXML: true + # minifyOutput: true + +params: +# env: production # to enable google analytics, opengraph, twitter-cards and schema. + title: Paul Montag + description: "Tech blog covering software engineering, and observability" + keywords: [Blog, Go, Golang, Software, Observability, Software Engineering] + author: Paul Montag + # author: ["Me", "You"] # multiple authors + # images: [""] + DateFormat: "January 2, 2006" + defaultTheme: auto # dark, light + disableThemeToggle: false + + ShowReadingTime: true + ShowShareButtons: true + ShowPostNavLinks: true + ShowBreadCrumbs: true + ShowCodeCopyButtons: false + ShowWordCount: true + ShowRssButtonInSectionTermList: true + UseHugoToc: true + disableSpecial1stPost: false + disableScrollToTop: false + comments: false + hidemeta: false + hideSummary: false + showtoc: false + tocopen: false + + #assets: + ## disableHLJS: true # to disable highlight.js + ## disableFingerprinting: true + #favicon: "" + #favicon16x16: "" + #favicon32x32: "" + #apple_touch_icon: "" + #safari_pinned_tab: "" + + #label: + #text: "Home" + #icon: /apple-touch-icon.png + #iconHeight: 35 + + # profile-mode + profileMode: + enabled: true # needs to be explicitly set + title: Paul Montag + subtitle: "Software Engineer" + imageUrl: "img/me.jpg" + #imageTitle: my image + buttons: + - name: Posts + url: posts + #- name: Tags + #url: tags + + # home-info mode + homeInfoParams: + Title: "Hi there \U0001F44B" + Content: Welcome to my blog + + # socialIcons: + # - name: x + # url: "https://x.com/" + # - name: stackoverflow + # url: "https://stackoverflow.com" + # - name: github + # url: "https://github.com/" + + # analytics: + # google: + # SiteVerificationTag: "XYZabc" + # bing: + # SiteVerificationTag: "XYZabc" + # yandex: + # SiteVerificationTag: "XYZabc" + + cover: + hidden: true # hide everywhere but not in structured data + hiddenInList: true # hide on list pages and home + hiddenInSingle: true # hide on single page + + editPost: + URL: "https://github.com/d1ngd0/blog/content" + Text: "Suggest Changes" # edit text + appendFilePath: true # to append file path to Edit link + + # for search + # https://fusejs.io/api/options.html + #fuseOpts: + #isCaseSensitive: false + #shouldSort: true + #location: 0 + #distance: 1000 + #threshold: 0.4 + #minMatchCharLength: 0 + #limit: 10 # refer: https://www.fusejs.io/api/methods.html#search + #keys: ["title", "permalink", "summary", "content"] +menu: + main: + - identifier: about + name: about + url: /about/ + weight: 10 + +# Read: https://github.com/adityatelange/hugo-PaperMod/wiki/FAQs#using-hugos-syntax-highlighter-chroma +pygmentsUseClasses: true +markup: + highlight: + noClasses: false + # anchorLineNos: true + # codeFences: true + # guessSyntax: true + # lineNos: true + # style: monokai diff --git a/content/archives.md b/content/archives.md new file mode 100644 index 0000000..5628e34 --- /dev/null +++ b/content/archives.md @@ -0,0 +1,6 @@ +--- +title: "Archive" +layout: "archives" +url: "/archives/" +summary: archives +--- diff --git a/content/posts/go_heap_allocation.md b/content/posts/go_heap_allocation.md new file mode 100644 index 0000000..2922526 --- /dev/null +++ b/content/posts/go_heap_allocation.md @@ -0,0 +1,203 @@ ++++ +title = 'Go Heap Allocations' +date = 2024-01-24T21:45:13-06:00 +draft = false ++++ + +Recently I found myself caring about performance. Usually, with go, you don't have to care if something is on the stack or the heap. Since Go is a garbage collected language all those details are taken care of for you. Worring about these things is a pre-optimization, and the community is very happy to tell you so. However, there is the rare event performance takes precidence, in which case the favor of garbage collection turns into a frustrating scavenger hunt. + +Lets write a simple benchmark so we can start looking for allocations. + +main_test.go +```go +type Person struct { + name string + age int +} + +func BenchmarkNew(b *testing.B) { + for i := 0; i < b.N; i++ { + e := Person{ + name: "eric", + age: 12, + } + + _, err := json.Marshal(e) + if err != nil { + b.FailNow() + } + } +} +``` + +We want to run our benchmarks and capture memory statistics. To do this we can use the `-memprofile` flag for `go test`. This will generate a memory profile which will help find where our allocations are occuring. We can also get a count of allocations to the heap during each loop in our benchmark by passing the `-benchmem` flag. + +``` +❯ go test -run='^$' -bench=BenchmarkNew -memprofile=mem.out -benchmem . +goos: linux +goarch: amd64 +pkg: github.com/d1ngd0/go-play +cpu: AMD FX(tm)-8320 Eight-Core Processor +BenchmarkNew-8 3484684 443.3 ns/op 32 B/op 2 allocs/op +PASS +ok github.com/d1ngd0/go-play 1.906s +``` + +So our code has 2 memory allocations per run. We can use the `go tool pprof` command to look through our memory profile and figure out where exactly the allocations are occuring. + +``` +❯ go tool pprof mem.out +File: go-play.test +Type: alloc_space +Time: Jan 24, 2024 at 10:17pm (CST) +Entering interactive mode (type "help" for commands, "o" for options) +(pprof) +``` + +Running the command above will place you in a prompt with commands to help you explore the data. The best place to start is with `top`, which shows you the top bytes allocated. + +``` +(pprof) top +Showing nodes accounting for 138.50MB, 100% of 138.50MB total + flat flat% sum% cum cum% + 101.50MB 73.29% 73.29% 138.50MB 100% github.com/d1ngd0/go-play.BenchmarkNew + 37MB 26.71% 100% 37MB 26.71% encoding/json.Marshal + 0 0% 100% 138.50MB 100% testing.(*B).launch + 0 0% 100% 138.50MB 100% testing.(*B).runN +``` + +We can then view the **exact** location by using the `list` command. + +``` +(pprof) list encoding/json.Marshal +Total: 138.50MB +ROUTINE ======================== encoding/json.Marshal in /usr/local/go/src/encoding/json/encode.go + 37MB 37MB (flat, cum) 26.71% of Total + . . 158:func Marshal(v any) ([]byte, error) { + . . 159: e := newEncodeState() + . . 160: defer encodeStatePool.Put(e) + . . 161: + . . 162: err := e.marshal(v, encOpts{escapeHTML: true}) + . . 163: if err != nil { + . . 164: return nil, err + . . 165: } + 37MB 37MB 166: buf := append([]byte(nil), e.Bytes()...) + . . 167: + . . 168: return buf, nil + . . 169:} + . . 170: + . . 171:// MarshalIndent is like Marshal but applies Indent to format the output. +``` + +Now we see that `buf := append([]byte(nil), e.Bytes()...)` is the line causing the heap allocation. This makes sense, as the code here is effectively copying the bytes from one slice into a new one. + +One of the issues here is we are tracking heap allocations by bytes allocated,not total number of allocations. Each allocation has overhead, as our program has to find a space large enough to hold our value. Disproportionate bytes needed for each allocation to the heap may throw off our numbers, and make a small performance issue look like a huge one. + +For instance lets add a big heap allocation to our benchmark. + +main_test.go +```go +func BenchmarkNew(b *testing.B) { + for i := 0; i < b.N; i++ { + // make a big heap allocation + v := make([]byte, 100000) + // make sure we use v so it doesn't optimise out + _ = v + + e := Person{ + name: "eric", + age: 12, + } + + // cause more heap allocations + for x := 0; x < 1000; x++ { + _, err := json.Marshal(e) + if err != nil { + b.FailNow() + } + } + } +} +``` + +We now see a staggering number of allocations, since we have increased the number of times we run json.Marshal + +``` +❯ go test -run='^$' -bench=BenchmarkNew -memprofile=mem.out -benchmem . +goos: linux +goarch: amd64 +pkg: github.com/d1ngd0/go-play +cpu: AMD FX(tm)-8320 Eight-Core Processor +BenchmarkNew-8 163 8571304 ns/op 138551 B/op 2001 allocs/op +PASS +ok github.com/d1ngd0/go-play 2.138s +``` + +After looking at the allocations in `BenchmarkNew` we see this + +``` +(pprof) list BenchmarkNew +Total: 32.34MB +ROUTINE ======================== github.com/d1ngd0/go-play.BenchmarkNew in /home/paul/Projects/go-play/main_test.go + 30.37MB 32.24MB (flat, cum) 99.69% of Total + . . 13:func BenchmarkNew(b *testing.B) { + . . 14: for i := 0; i < b.N; i++ { + . . 15: // make a big heap allocation + 24.78MB 24.78MB 16: v := make([]byte, 100000) + . . 17: // make sure we use v so it doesn't optimise out + . . 18: _ = v + . . 19: + . . 20: e := Person{ + . . 21: name: "eric", + . . 22: age: 12, + . . 23: } + . . 24: + . . 25: // cause more heap allocations + . . 26: for x := 0; x < 1000; x++ { + 5.58MB 7.46MB 27: _, err := json.Marshal(e) + . . 28: if err != nil { + . . 29: b.FailNow() + . . 30: } + . . 31: } + . . 32: } +``` + +You can see line 16 has a much larger allocation in bytes, but each run should cause a single allocation. We are running 1000 allocations in the for loop in BenchmemNew and another 1000 inside `json.Marshal`. This will have a much larger performance impact. Though the way we are measuring things would make us look at line 16 first. Let's run our test again to get a count of allocations instead. + +First when we run our command we will set the flag `-memprofilerate=1`. This will count **every** allocation that occurs, though it does this at a massive performance cost. Since we only care to count allocations, we don't really care how long it takes to run. + +``` +❯ go test -run='^$' -bench=BenchmarkNew -memprofile=mem.out -memprofilerate=1 -benchmem . +``` + +Now we can run `pprof` again, but this time we will pass in the `-alloc_objects` flag. + +``` +❯ go tool pprof -alloc_objects mem.out +(pprof) list BenchmarkNew +Total: 396519 +ROUTINE ======================== github.com/d1ngd0/go-play.BenchmarkNew in /home/paul/Projects/go-play/main_test.go + 264264 396342 (flat, cum) 100% of Total + . . 13:func BenchmarkNew(b *testing.B) { + . . 14: for i := 0; i < b.N; i++ { + . . 15: // make a big heap allocation + 264 264 16: v := make([]byte, 100000) + . . 17: // make sure we use v so it doesn't optimise out + . . 18: _ = v + . . 19: + . . 20: e := Person{ + . . 21: name: "eric", + . . 22: age: 12, + . . 23: } + . . 24: + . . 25: // cause more heap allocations + . . 26: for x := 0; x < 1000; x++ { + 264000 396078 27: _, err := json.Marshal(e) + . . 28: if err != nil { + . . 29: b.FailNow() + . . 30: } + . . 31: } + . . 32: } +``` + +Now we can see where the allocations are really occuring. diff --git a/hugo.toml b/hugo.toml deleted file mode 100644 index 4196c60..0000000 --- a/hugo.toml +++ /dev/null @@ -1,5 +0,0 @@ -baseURL = 'https://pages.github.com/d1ngd0/blog/' -languageCode = 'en-us' -title = 'Paul Montag Blog' - -theme = [ 'PaperMod' ] diff --git a/static/img/me.jpg b/static/img/me.jpg new file mode 100644 index 0000000000000000000000000000000000000000..6ba2216b10797f74689b112c7a4bb344725e070b GIT binary patch literal 48569 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 h$5~*NX<-dD+5~S)8N>eoDM?^1>qp)? zKT`!EHqcEBRxAT8;tErFfKBU|6JRt9<#_G zgJbb7ufhe1RbRORCal!m<`{cIN);Ymqp#ptTdM2yrM0i(H7R6aXDZ&KoT)iOic2`z z5ODI6@Jf;5BctXyP2EwojQ~r`2UQ^fK`mDjxAEl84u9vlX!}M{a?u#v0cx-0OwFfn zD__RIU~)s&xq)!NCc0yZj6N#u`GrPC^NcFswBlOJ@dupD^r`{iV5}c8B@SLn!q!l+ zbe|Ai33bs=`7M&e3UW@9i-iR1^kI>3X=`oiAL4E#HH8+qc2eFaSOmj_Vyc8hCYJM7 zP%1=`KOyC1!nbnM)b3U;FJjihM`nga-ElC+{a~9vVUqb}EAWbuf!k{1#s-shNs#>kZ7^q|4ly)trYPptWjmJo|O6t48KmXZ##&R40 literal 0 HcmV?d00001