Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Go Performans Rehberi
Search
Oğuzhan
July 25, 2020
Technology
1
300
Go Performans Rehberi
https://gophercon.ist/
için hazırladığım sunum
Oğuzhan
July 25, 2020
Tweet
Share
More Decks by Oğuzhan
See All by Oğuzhan
Yazılımda Ustalaşmak
oguzhan
0
110
Kuşbakışı GO
oguzhan
2
380
Hayatınızı Değiştirecek 10 Araç (Hosting Meetup)
oguzhan
0
740
MaestroPanel HTK
oguzhan
0
57
Other Decks in Technology
See All in Technology
プログラミング言語を書く前に日本語を書く── AI 時代に求められる「言葉で考える」力/登壇資料(井田 献一朗)
hacobu
PRO
0
170
[CV勉強会@関東 ICCV2025 読み会] World4Drive: End-to-End Autonomous Driving via Intention-aware Physical Latent World Model (Zheng+, ICCV 2025)
abemii
0
230
Amazon ECS デプロイツール ecspresso の開発を支える「正しい抽象化」の探求 / YAPC::Fukuoka 2025
fujiwara3
13
3.6k
CloudFormationコンソールから、実際に作られたリソースを辿れるようになろう!
amixedcolor
1
190
AIと共に開発する時代の組織、プロセス設計 freeeでの実践から見えてきたこと
freee
4
720
大規模プロダクトで実践するAI活用の仕組みづくり
k1tikurisu
4
1.3k
今、MySQLのバックアップを作り直すとしたら何がどう良いのかを考える旅
yoku0825
2
390
明日から真似してOk!NOT A HOTELで実践している入社手続きの自動化
nkajihara
1
770
AI × クラウドで シイタケの収穫時期を判定してみた
lamaglama39
1
320
Perlブートキャンプ
hatena
0
170
Kubernetesと共にふりかえる! エンタープライズシステムのインフラ設計・テストの進め方大全
daitak
0
270
“それなりに”安全なWebアプリケーションの作り方
xryuseix
0
380
Featured
See All Featured
It's Worth the Effort
3n
187
28k
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.5k
Building Flexible Design Systems
yeseniaperezcruz
329
39k
The World Runs on Bad Software
bkeepers
PRO
72
12k
Faster Mobile Websites
deanohume
310
31k
Code Review Best Practice
trishagee
72
19k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
231
54k
Fashionably flexible responsive web design (full day workshop)
malarkey
407
66k
Visualization
eitanlees
150
16k
Building a Scalable Design System with Sketch
lauravandoore
463
33k
Rails Girls Zürich Keynote
gr2m
95
14k
Making Projects Easy
brettharned
120
6.5k
Transcript
Oğuzhan Yılmaz Go Performans Rehberi
min. Go 1.14
if > switch
13.5 ns/op 15.5 ns/op
12.1 ns/op
strconv > fmt
BenchmarkStrconv-16 19381725 67.5 ns/op 32 B/op 1 allocs/op BenchmarkFmt-16 5839038
222 ns/op 72 B/op 3 allocs/op 67.5 ns/op
make([]int, 0, 10) > []int{}
BenchmarkMakeSliceWithCap-16 1000000000 0.234 ns/op 0 B/op 0 allocs/op BenchmarkMakeSlice-16 65739
17390 ns/op 16376 B/op 11 allocs/op 0.234 ns/op
strings.Builder > “a” + “b”
BenchmarkStringBuildNaive-16 6573120 174 ns/op 32 B/op 6 allocs/op BenchmarkStringBuildBuilder-16 19740784
62.4 ns/op 64 B/op 1 allocs/op 62.4 ns/op
bytes.Replace > strings.Replace bytes Concat > strings Concat bytes Concat
> strings Join
70.1 ns/op BenchmarkBytesReplace-4 20000000 70.1 ns/op 32 B/op 1 allocs/op
BenchmarkStringsReplace-4 10000000 132 ns/op 64 B/op 2 allocs/op
https://github.com/valyala/fasthttp
binary.BigEndian.PutUint32 > binary.Write
1075 ns/op 113 ns/op
sync.Pool
None
_ = make([]byte, 10<<30)
runtime.MemProfileRate = 0 https://golang.org/pkg/runtime/
syscal.SYS_MMAP
None
map[int]int{} > map[string]int{}
3 ms/op
json.Marshal(Struct) > json.Marshal(Map)
BenchmarkMarshallStruct-16 4721078 230 ns/op 64 B/op 2 allocs/op BenchmarkMakeSlice-16 1843551
665 ns/op 512 B/op 10 allocs/op 230 ns/op
Atomic > Mutex
BenchmarkIncrementMutex-16 87149690 12.3 ns/op 0 B/op 0 allocs/op BenchmarkIncrementMutexNoDefer-16 99812758
12.2 ns/op 0 B/op 0 allocs/op BenchmarkIncrementAtomic-16 286304998 4.19 ns/op 0 B/op 0 allocs/op BenchmarkConcurrentMutex-16 226051 5104 ns/op 16 B/op 1 allocs/op BenchmarkConcurrentMutexNoDefer-16 235743 4941 ns/op 16 B/op 1 allocs/op BenchmarkConcurrentAtomic-16 260210 4635 ns/op 16 B/op 1 allocs/op 4.19 ns/op
1. https://github.com/dgryski/go-perfbook/blob/master/performance.md 2. https://stephen.sh/posts/quick-go-performance-improvements 3. https://hashrocket.com/blog/posts/go-performance-observations 4. https://gist.github.com/vitalyisaev2/5791627ffc48f10c2fde22c2a5dd32ee