Facebook의 정수-문자열 변환 트릭, 기존 방식보다 31% 빠르다
Integer to String Conversion (2014)
Lwan 웹서버 개발자 L. Pereira가 정수를 문자열로 변환하는 여러 방법을 비교했다. snprintf()는 느리고, 나이브 알고리즘은 문자열을 뒤집는 단계가 비효율적이다. Facebook 엔지니어링 팀이 공개한 함수는 00부터 99까지 두 자리 숫자 쌍을 미리 계산한 룩업 테이블을 사용해 나눗셈 횟수를 절반으로 줄여 기존 방식보다 약 31% 더 빠르다. 다만 라이선스 문제로 Lwan에는 적용하지 못했다.
그러나 결국 이런 종류의 코드를 만지작거릴 때 항상 피해야 할 일을 저질렀다. 성능이 더 나아질지 측정도 하지 않은 채 배열 룩업을 덧셈으로 바꾸고 그대로 커밋해버린 것이다. 룩업 테이블이 약 9% 더 빠르다. 아야!