대량의 tolower()를 빠르게 수행하기
(dotat.at)- DNS서버는 종종 도메인명을 소문자로 변환해야 함
- BIND는 기존 DNS값을 보존해야 하기 때문에 좀 더 작업이 필요함
- SWAR를 tolower()에 적용해 보기로 함
→ SIMD within a register : 하나의 명령어로 레지스터 안에서 여러 데이터를 병렬 연산 하는 것 - uint64_t 에 넣은 8개의 ASCII 문자를 처리하는
tolower8
함수를 생성
→ 구현한 C 코드의 각 라인당 설명은 원문 참조 - 성능
0.098 ms memmove() copy
0.399 ms tolower8() copy
1.817 ms tolower() copy
0.280 ms tolower8() compare
2.090 ms tolower() compare