Programming/golang2023. 9. 1. 14:48

이전에 공유메모리를 사용할 때 c에서는 packed 구조체로 사용하고

go 에서는 system v 스타일로 그냥 사용했는데 문제가 없었는데, 문제가 없던게 아니라 몰랐던건가?

 

[링크 : https://medium.com/@liamkelly17/working-with-packed-c-structs-in-cgo-224a0a3b708b]

[링크 : https://stackoverflow.com/questions/55681650/golang-pack-a-struct]

 

[링크 : https://pkg.go.dev/golang.org/x/tools/go/analysis/passes/fieldalignment]

[링크 : https://golangprojectstructure.com/how-to-make-go-structs-more-efficient/]

 

fieldalignment 라는 유틸(?)을 이용하면 go의 구조체를 바꾸어서 용량을 줄여준다는데

자세히 보면 가장 큰 구조체를 위로 올리고 작은건 뒤에 배치해서 메모리 align에 맞춰서 하는 것으로 보인다.

[링크 : https://jacking75.github.io/go-20220712/]

 

기존에 메모리 배치를 알아서 잘 쌓아서 쓰던 습관이 있어서 우연히(?) 회피한건가...

'Programming > golang' 카테고리의 다른 글

golang echo 구조체 배열은 미지원?  (0) 2023.11.06
golang echo 패키지 소스  (0) 2023.09.13
golang asm  (0) 2023.08.24
golang goarch=arm64 와 디스어셈블러  (0) 2023.08.23
golang echo 서버 이상한 버그 발견?  (0) 2023.06.27
Posted by 구차니