동적 객체 속성 조회를 빠르게 하는 shape와 인라인 캐시
Max Bernstein의 글은 동적 객체의 속성 이름과 슬롯 위치를 shape로 연결하고, 인라인 캐시가 조회 지점에서 shape와 슬롯을 재사용하는 원리를 설명합니다. Python 축약 구현과 C++ 메모리 배치 스케치로 작동 방식을 보여 주며, 속성 추가 순서에 따라 shape가 달라지고 다른 클래스의 객체도 같은 shape를 공유할 수 있다고 설명합니다.
AI, 개발 도구, 오픈소스, 보안과 인프라의 변화와 이용 조건을 설명하는 최신 기사와 해설입니다.
Max Bernstein의 글은 동적 객체의 속성 이름과 슬롯 위치를 shape로 연결하고, 인라인 캐시가 조회 지점에서 shape와 슬롯을 재사용하는 원리를 설명합니다. Python 축약 구현과 C++ 메모리 배치 스케치로 작동 방식을 보여 주며, 속성 추가 순서에 따라 shape가 달라지고 다른 클래스의 객체도 같은 shape를 공유할 수 있다고 설명합니다.
C 컴파일러 antcc에서 Lua 벤치마크가 -O2로 더 느려지는 원인을 추적합니다. mem2reg가 루프 안의 초기화되지 않은 지역 변수를 잘못 처리해 불필요한 phi 노드를 만들었고, 레지스터 압박과 스필링이 늘어났습니다. alloca 처리 한 줄을 고쳐 성능 저하가 사라졌습니다.
소형 컴파일러 rat의 선형 스캔 레지스터 할당기를 1,392줄에서 584줄짜리 우선순위 기반 할당기로 바꾼 과정을 설명합니다. 새 할당기는 레지스터 축출이나 구간 분할 없이도 명령어를 3.6% 줄이고, SQLite를 -O0으로 컴파일할 때 전체 컴파일 시간을 43% 단축했습니다.
컴파일러 최적화에는 양방향 등식보다 추상적인 프로그램을 더 구체적인 프로그램으로 좁혀 가는 정제(refinement) 규칙이 자주 등장합니다. 글은 E-Graph에 반사적·추이적인 부등식 관계를 내장하고, 함수 인자의 분산성(variance)에 맞춰 정제 폐쇄, E-matching, 추출을 확장한 프로토타입을 설명합니다.
Promptic은 자체 데이터와 비즈니스 지표로 모델, 프롬프트, 에이전트를 비교하고 설정을 최적화하는 플랫폼입니다. 품질·비용·지연 시간을 함께 평가해 적합한 구성을 고르며, 기존 에이전트에 SDK 래퍼를 붙여 사용할 수 있습니다.