위대한 해커들의 말말말 - 피터 노빅
2012.03.22 07:00 |
위대한 해커들의 말말말
좋은 프로그래머가 되려면 컴퓨터가 명령어를 실행시키는 데 걸리는 시간, 메모리에서 데이터를 가져오는 데 걸리는 시간(캐시 히트 또는 미스가 날 때를 각각), 디스크에서 데이터를 읽어오거나 탐색하는 데 걸리는 시간을 잘 알고 있어야 한다.그 답은 아래 표에 나와있다. (출처 http://norvig.com/21-days.html#answers)
execute typical instruction |
1/1,000,000,000 sec = 1 nanosec |
fetch from L1 cache memory |
0.5 nanosec |
branch misprediction |
5 nanosec |
fetch from L2 cache memory |
7 nanosec |
Mutex lock/unlock |
25 nanosec |
fetch from main memory |
100 nanosec |
send 2K bytes over 1Gbps network |
20,000 nanosec |
read 1MB sequentially from memory |
250,000 nanosec |
fetch from new disk location (seek) |
8,000,000 nanosec |
read 1MB sequentially from disk |
20,000,000 nanosec |
send packet US to Europe and back |
150 milliseconds = 150,000,000 nanosec |
나는 도대체 나노초가 어느 정도인지 감도 잘 오지 않는다. 그래도 뭐 외우라면 외워야지.
'위대한 해커들의 말말말' 카테고리의 다른 글
매크로는 절대 안돼 by 마츠모토 유키히로 (0) | 2015.01.12 |
---|---|
위대한 해커들의 말말말 - 피터 노빅 (2) | 2012.03.22 |
위대한 해커들의 말말말 - 폴 그레이엄(2) (0) | 2012.03.11 |
이스트소프트 수석 프로그래머의 이야기 (0) | 2012.02.29 |
위대한 해커들의 말말말 - 레이몬드 첸 (0) | 2012.02.24 |
위대한 해커들의 말말말 - 비야네 스트롭스트룹(2) (0) | 2012.02.23 |
락 거는 게 메모리 접근 보다 빠르다는게 놀랍네요.
Reply저는 매우 느릴거라고 생각했는데...
Mutex lock이 뭘 말하는건지 잘 모르겠지만 뮤텍스 커널 오브젝트를 생성하고 획득한다던지 하는 내용은 아닌 것 같습니다. CPU가 제공하는 LOCK 명령어를 저렇게 쓴 건 아닐까 싶네요.