FreeType 프로젝트는 Arial TTF 폰트를 로딩할 때 시작 시간이 10배 증가하는 주요 성능 문제를 해결했습니다. 원래 구현은 비효율적인 `hb_ot_shape_glyphs_closure` 함수를 사용했으며, 이는 OpenType 기능이 많은 폰트에서 특히 문제가 되었습니다. 이 함수는 `arial.ttf` 버전 7.00을 로딩하는 동안 66,954회 호출되어 수용할 수 없는 지연을 초래했습니다.
이를 해결하기 위해, OpenType 기능 대신 OpenType 조회에 중점을 둔 저수준 접근 방식으로 전환하는 새로운 알고리즘이 도입되었습니다. 이 변경 사항은 `hb_ot_layout_lookup_get_glyph_alternates` 함수를 사용하고 재귀를 간단한 루프로 대체합니다. 그 결과, 시작 시간이 몇 퍼센트로 줄어들어 훨씬 더 효율적이 되었습니다. 또한, 이 새로운 방법은 이전 구현에서 충분히 다루지 않았던 대체 글리프 형태의 처리를 개선합니다.
전반적으로 이러한 개선 사항은 성능을 최적화할 뿐만 아니라 복잡한 폰트 기능을 처리할 때 FreeType의 기능을 향상시켜 폰트 렌더링 효율성에서 중요한 개선을 이룹니다.
* 이 글은
phoronix.com의 기사를 요약한 것입니다. 전체 기사의 내용은
이곳에서 확인하실 수 있습니다.