▲GN⁺ 2024-03-18 | parent | ★ favorite | on: 프레임 포인터의 복귀(brendangregg.com)Hacker News 의견 2000년대 초반 스택 프레임 포인터 생략이 퍼지기 시작했을 때의 경험 저자는 당시 컴퓨터 과학을 공부하고 있었으며, 사용하는 컴퓨터는 오래되고 성능이 낮았음. 디버깅이 어려워지자 Python을 사용하기 시작함으로써 디버깅 문제를 피함. 페도라(Fedora) 배포판에서 스택 프레임 포인터를 유지하기 위한 노력 스택 프레임 포인터가 큰 오버헤드를 가진다는 잘못된 믿음이 있었으나, 실제 오버헤드는 1% 미만임. 애플이 ARM 아키텍처에서 스택 트레이스를 항상 의미 있게 유지한 점 특정 함수는 프레임 레코드를 생성하지 않을 수 있지만, 스택 트레이스는 디버그 정보 없이도 유의미함. 구글에서의 경험과 커뮤니티와의 20년간의 논쟁 libunwind를 gperftools에 적용하기 위한 패치 작업 및 유지보수 경험 공유. 과거에 -fomit-frame-pointer 옵션으로 성능 향상을 경험한 사례 32비트 프로세서에서 MySQL과 PHP를 컴파일하여 하드웨어 비용 절감. Virgil 프로그래밍 언어의 스택 프레임 관리 방법 동적 스택 할당이 없는 경우, 간단한 테이블 조회로 프레임 크기를 찾을 수 있음. 메타데이터 디코딩을 구현하는 코드에 대한 설명. 스택을 '걷는' 대신 RBP와 RSP를 사용하여 두 개의 스택을 관리하는 아이디어 호출 스택이 단순히 반환 주소의 배열이 됨으로써 스택 걷기의 필요성 감소. 프레임 포인터에 대한 지지와 관련된 경험 및 생각 공유 프레임 포인터 활성화 여부는 사례별로 결정되어야 하며, 벤치마킹이 중요함. 빌드 시스템이 이를 전체적으로 변경할 수 있는 기능을 제공하는 것의 중요성. SFrame에 대한 기대감과 현재 문제를 해결할 잠재력. 프로파일링이 20년 동안 문제가 되었고 이제야 해결되었다는 의견 프레임 포인터의 부재가 많은 사람들에게 고통스러웠으며, 이제 리눅스가 그것을 되돌리는 것을 보며 그들의 노력이 인정받는 것 같음. 시스템 프로파일링을 가능하게 하는 메커니즘의 성능에 대한 불만이 역설적임 성능 문제를 식별할 수 있게 해주는 시스템에 대한 성능 불만은 성급한 최적화의 극치임.
Hacker News 의견
-fomit-frame-pointer옵션으로 성능 향상을 경험한 사례