클럭 노이즈 튀는거 고려하면 10바이트 언저리까지 strlen 이 조금 앞섰다고 봄.
p.s. 아니네 직접 길이 넣어줘 봤는데 짧은 문자열도 대개 내꺼가 더 빠름.
아래 다시 측정 (10만번)
(아까 최소값이 아니라 마지막값이 찍혔었네 ㅡㅡㅋ 나 바보. 클럭 노이즈는 증가방향으로 튀니까 최소값이 보다 합리적.
단 이렇게 계산하면 스톨 확률 반영되진 않음)
위는 32비트
아래는 64비트
클럭 노이즈 튀는거 고려하면 10바이트 언저리까지 strlen 이 조금 앞섰다고 봄.
p.s. 아니네 직접 길이 넣어줘 봤는데 짧은 문자열도 대개 내꺼가 더 빠름.
아래 다시 측정 (10만번)
(아까 최소값이 아니라 마지막값이 찍혔었네 ㅡㅡㅋ 나 바보. 클럭 노이즈는 증가방향으로 튀니까 최소값이 보다 합리적.
단 이렇게 계산하면 스톨 확률 반영되진 않음)
위는 32비트
아래는 64비트
코드 기대하는 중입니다. ㅎㅎ
ㅋㅋ 실망시키지 말아야할텐데~
OS가 바빠서 같은 코어 사용할 때 지연이 발생해. 그래서 아주 작은 명령을 돌려도 숫자가 들쑥날쑥.
__rdtsc(); 함수는 어셈블리 명령어 rdtsc 한 번 불러주는게 전분데, 최소 18 clock 정도 소요하거든. (64비트 변수에 담는 것 포함해서)
그런데 두 번 내리 불러서 클럭수를 세어 보면 18 ~ 30 언저리에서 놀지. 때때로 수백 수천도 올라가.
2005년 즈음에 나왔던 특정 마더보드들은 클럭버그도 있어. (가끔 일정클럭 뒤로 되돌아감)
그게 특정 코어랑 특정 마더보드 칩셋(FSB 때문) 이 조합되면 웃기게 놀더라.