프로그래머가 알아야 할 숫자들

1.
레이턴시의 세계로 들어오면 가장 먼저 측정 단위가 바뀝니다. 일상 생활에서 분초를 다투는 일은 거의 없습니다.

“자네, 일을 마치기로 한 시간에 30초 초과하였어!”

이런 식으로 부하직원을 야단치는 분들은 없겠죠. 초를 느끼는 때는 체력측정할 때뿐입니다. 100미터 달리기입니다. 어릴 적에는 13초였는데 이제는 20초가 넘어가려고 합니다. 세월을 초로 느낍니다.

그런데 레이턴시는 밀리초도 아니고 마이크로초 혹은 나노초를 단위로 합니다. “빛의 속도보다 더 빠른 소립자 속도를 관측하였다”고 세상을 시끄럽게 하였던 CERN도 60나노초의 차이에 기초하였습니다. 이처럼 레이턴시의 세계는 물리학의 세계입니다.

정보기술의 세계를 지배하는 숫자들이 있습니다.?Latency Numbers Every Programmer Should Know에 올라온 내용입니다.

Latency Comparison Numbers
———————————
L1 cache reference 0.5 ns
Branch mispredict 5 ns
L2 cache reference 7 ns 14x L1 cache
Mutex lock/unlock 25 ns
Main memory reference 100 ns 20x L2 cache, 200x L1 cache
Compress 1K bytes with Zippy 3,000 ns
Send 1K bytes over 1 Gbps network 10,000 ns 0.01 ms
Read 4K randomly from SSD* 150,000 ns 0.15 ms
Read 1 MB sequentially from memory 250,000 ns 0.25 ms
Round trip within same datacenter 500,000 ns 0.5 ms
Read 1 MB sequentially from SSD* 1,000,000 ns 1 ms 4X memory
Disk seek 10,000,000 ns 10 ms 20x datacenter roundtrip
Read 1 MB sequentially from disk 20,000,000 ns 20 ms 80x memory, 20X SSD
Send packet CA->Netherlands->CA 150,000,000 ns 150 ms

Notes
—–
1 ns = 10-9 seconds
1 ms = 10-3 seconds
* Assuming ~1GB/sec SSD

Credit
——
By Jeff Dean: http://research.google.com/people/jeff/
Originally by Peter Norvig: http://norvig.com/21-days.html#answers

Contributions
————-
Some updates from: https://gist.github.com/2843375
Great ‘humanized’ comparison version: https://gist.github.com/2843375
Visual comparison chart: http://i.imgur.com/k0t1e.png
Nice animated presentation of the data: http://prezi.com/pdkvgys-r0y6/latency-numbers-for-programmers-web-development/

2.
지금까지 숫자를 소개했지만 레이턴시는 숫자가 아니라 통계이고 분포입니다. 이점은 잊지마세요. 여기서 하나더 실험을 해보죠. 손매매와 기계매매를 이야기합니다. 당연히 특정한 호가에 반응하는 속도는 차이가 있습니다. 인간의 반응속도는 얼마일까요?

손매매를 하시는 분은 아래를 시험해보세요. 자신의 반응속도를 측정할 수 있습니다. 아래 실험에 참여한 분들의 평균은 215ms라고 합니다. 저는 280ms쯤입니다.

그러면, 여러분?(^^)

2 Comments

  1. Hammer

    재밌있는 블로그네요. ^^
    유용한 숫자도 많구요..
    전 3번 해봤는데 206 나왔어요.. 쬐끔 빠르네요…

    Reply
    1. smallake (Post author)

      축하드립니다. 저보다 젊다는 증거입니다. 나이가 드니까 반응속도가 떨어지네요.(^^)

      너무 더워요. 건강 잘 챙기세요.

      Reply

Leave a Comment

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다

이 사이트는 스팸을 줄이는 아키스밋을 사용합니다. 댓글이 어떻게 처리되는지 알아보십시오.