Go 가비지 컬렉터 해킹: 어셈블리에서의 포인터 저장
2025-06-23
이 글에서는 Go 어셈블리 코드에서 포인터를 조작하는 복잡성을 자세히 살펴보고, Go 가비지 컬렉터와의 중요한 상호 작용에 중점을 둡니다. 포인터를 직접 조작하려면 `runtime.gcWriteBarrier2` 및 `runtime.writeBarrier` 와 같은 함수를 사용하여 GC에 명시적으로 알려야 합니다. 이를 통해 충돌 및 가능한 크래시를 방지할 수 있습니다. 이 글에서는 AVX 명령어를 최적으로 사용하기 위한 128비트 정렬된 메모리 할당이라는 과제에도 해결책을 제시합니다. 하지만 향후 Go 버전에서 가용성이 변경될 수 있으므로 내부 런타임 함수에 의존하지 않도록 주의해야 합니다.
(mazzo.li)
개발
Go 어셈블리