일단 unsafe는 성능을 위해서 쓰는게 아님 대부분의 경우 이미 제공되는 safe 함수들이 다 그에 맞게 최적화 돼있음


하지만 한번씩 그 safe 함수를 직접 로우레벨에서 unsafe로 부터 만들어야할 경우가 존재함


그럴때 컴파일러 정적 체크의 세계에서 잠시 벗어나서 로우레벨 컨트롤을 빌려쓰는거지 성능을 위해서 안전을 희생한다 같은 개념이 절대 아님




실제 예시를 두개 들어봄







위는 tokio라는 비동기 런타임 라이브러리고 밑은 redox라는 OS의 커널임


둘다 성능을 요구하는건 같지만 커널은 특성상 더 로우레벨 컨트롤이 필요한 경우가 많아서 훨씬 비율이 높음


그리고 그렇게 unsafe를 많이 필요로 하는 커널조차 고작 6.88%밖에 안됨 대부분은 있지도 않음




참고로 성능딸이라면 누구에게도 지지않는 rust 컴파일러도 0.55%밖에 없음