Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- line챠트
- vue3
- golang벤치마크
- Golang부하테스트
- Vue.js
- 대역폭측정하기
- Golang디자인패턴
- 디자인패턴학습필요성
- GO벤치마킹
- 리플렉션성능
- GO부하테스트
- Go벤치마크
- Golang성능테스트
- pprof
- golang uuid
- snoflake
- vue3 axios
- Golangbenchmark
- go로드맵
- Go성능테스트
- Line차트
- 챠트그리기
- GObenchmark
- Golang벤치마킹
- Go디자인패턴
- 디자인패컨
- Iperf3
- go리플렉션성능
- vue3-chartjs
- vue3 통신
Archives
- Today
- Total
import ( "코딩", "행복", "즐거움" )
메모리 절약 패키지, fieldalignment 사용 본문
게임서버 개발자라면 다들 아실만한 "최흥배" 님이
서버 개발자 커뮤니티 페이스북에서 공유 한 내용이다.
원문은 일본 사이트 이다.
원문: https://mattn.kaoriya.net/software/lang/go/20220127151742.htm
Big Sky :: Go の struct は小さくできる(fieldalignment のススメ)
システム開発屋がひっそり語るぼやき
mattn.kaoriya.net
예를 들어 내가 이런 코드를 작성했다고 치자
type MyData struct {
f0 byte
f1 int
f2 float32
f3 string
f4 []int
f5 map[string]string
}
위의 코드는 64bit시스템 기준 72byte 사이즈를 가지게 된다.
수동으로 필드를 정렬 해서 메모리를 최적화 할 수 있지만,
이를 자동으로 도와주는 패키지가 있다.
바로 이름은 ...
fieldalignment
패키지 설치방법
go install golang.org/x/tools/go/analysis/passes/fieldalignment/cmd/fieldalignment@latest
실행방법
fieldalignment -fix .
실행 후 72byte 에서 64byte로 최적화 되었다.
소스코드는 갱신 된다.
type MyData struct {
f5 map[string]string
f3 string
f4 []int
f1 int
f2 float32
f0 byte
}
최적화 전과 후를 그림으로 표현하면 아래와 같다.
좋은 정보를 항상 공유해주시는 "최흥배"님 감사합니다

'GO' 카테고리의 다른 글
GO 백엔드 개발자 학습 로드맵 (0) | 2022.11.16 |
---|---|
GO 디자인 패턴에 관심이 있다면 ?? (0) | 2022.11.16 |
Golang 벤치마킹 함수 성능 개선 (0) | 2022.11.15 |
pprof (0) | 2022.10.05 |
Go 필드 정렬해서 메모리 절약하기 (0) | 2022.10.03 |