# 모든 프로그래머가 알아야 할 필수 숫자들

> Clean Markdown view of GeekNews topic #13749. Use the original source for factual precision when an external source URL is present.

## Metadata

- GeekNews HTML: [https://news.hada.io/topic?id=13749](https://news.hada.io/topic?id=13749)
- GeekNews Markdown: [https://news.hada.io/topic/13749.md](https://news.hada.io/topic/13749.md)
- Type: GN+
- Author: [neo](https://news.hada.io/@neo)
- Published: 2024-03-11T10:14:38+09:00
- Updated: 2024-03-11T10:14:38+09:00
- Original source: [samwho.dev](https://samwho.dev/numbers/?fo)
- Points: 49
- Comments: 4

## Topic Body

### 프로그래머가 알아야 할 지연 시간 숫자를 시각적으로 표현  
  
- **L1 캐시 참조**: 1나노초  
- **분기 예측 실패**: 3나노초  
- **L2 캐시 참조**: 4나노초  
- **뮤텍스 잠금/해제**: 17나노초  
- **1 Gbps 네트워크를 통한 1KB 데이터 전송**: 44나노초  
- **주 메모리 참조**: 100나노초  
- **Zippy를 이용한 1KB 데이터 압축**: 2마이크로초  
- **메모리에서 1MB 순차 읽기**: 3마이크로초  
- **SSD에서 4K 무작위 읽기**: 16마이크로초  
- **SSD에서 1MB 순차 읽기**: 49마이크로초  
- **동일 데이터센터 내 왕복 시간**: 500마이크로초  
- **디스크에서 1MB 순차 읽기**: 825마이크로초  
- **디스크 탐색**: 2밀리초  
- **캘리포니아에서 네덜란드까지 패킷 전송 후 돌아오기**: 150밀리초  
  
### GN⁺의 의견  
- 이 데이터는 프로그래머들이 시스템 설계나 성능 최적화를 할 때 중요한 참고 자료가 될 수 있음. 각각의 연산이나 작업이 얼마나 시간이 걸리는지를 알면, 어떤 부분이 병목 현상을 일으키는지 파악하고 개선할 수 있음.  
- 예를 들어, 메모리 접근 시간과 네트워크 지연 시간을 비교하면, 네트워크 호출을 최소화하고 메모리 내에서 데이터를 처리하는 것이 훨씬 빠르다는 것을 알 수 있음. 이는 분산 시스템 설계에 있어 중요한 고려 사항이 될 수 있음.  
- 이러한 지연 시간은 하드웨어와 기술의 발전에 따라 변할 수 있으므로, 최신 정보를 유지하는 것이 중요함. 예를 들어, SSD의 발전으로 인해 디스크 읽기 시간이 크게 단축되었음.  
- 새로운 기술이나 오픈소스를 도입할 때는 이러한 지연 시간을 고려하여 시스템의 성능을 예측하고, 어떤 기술이 실제 환경에서 가장 효과적일지 결정해야 함. 예를 들어, 메모리 내 캐싱 솔루션을 사용하면 네트워크 지연을 줄일 수 있지만, 캐시 일관성과 데이터 동기화에 대한 추가적인 고려가 필요함.

## Comments



### Comment 23641

- Author: kleinstein
- Created: 2024-03-11T16:21:14+09:00
- Points: 2

https://colin-scott.github.io/personal_website/research/interactive_latency.html  
여기가 더 보기 좋네요.

### Comment 23639

- Author: cosine20
- Created: 2024-03-11T14:52:32+09:00
- Points: 1

어우 UI/UX 진짜 맘에 안드네요...

### Comment 23807

- Author: yangeok
- Created: 2024-03-18T16:35:29+09:00
- Points: 1
- Parent comment: 23639
- Depth: 1

정말이네요 ㄷㄷ,,

### Comment 23626

- Author: neo
- Created: 2024-03-11T10:14:38+09:00
- Points: 1

###### [Hacker News 의견](https://news.ycombinator.com/item?id=39657675) 
- 첫 번째 댓글 요약:
  - 사용자는 JavaScript 코드를 공유하며, 이 코드는 "latency-container" 클래스를 가진 HTML 요소의 자식 요소들을 순회하면서, 각각의 지연 시간(latency)을 출력함.
  - 출력된 지연 시간은 L1 캐시 참조부터 데이터 센터 내 왕복 시간까지 다양한 컴퓨팅 작업에 대한 것임.

- 두 번째 댓글 요약:
  - 사용자 인터페이스(UI)의 사용성이 좋지 않다고 평가하며, 이는 사용자 경험(UX)에 대한 흥미로운 사례로 제시됨.
  - UI가 주요 기능을 수행하는 데 있어 사용자의 기대에 못 미치고, 이해하기 어렵다고 비판함.
  - 사용자는 도움말을 읽어야 하지만, 대부분의 사용자는 이를 선호하지 않음.
  - 이러한 문제점들에 대한 토론을 통해 UX에 대한 교훈을 얻을 수 있음을 강조함.

- 세 번째 댓글 요약:
  - 제목에 "Latency"가 빠져 있어 검색 시 다른 결과들을 찾기 어렵다고 지적함.
  - 다른 소스를 참조하며, 더 많은 지연 시간 정보를 제공하는 텍스트 기반의 자료를 선호함.

- 네 번째 댓글 요약:
  - 화면에 표시된 UI의 일부가 읽기 어렵다고 비판함.
  - 텍스트가 90도로 회전되어 있어 불편하며, UI는 재미있지만 실제로 정보를 얻기에는 기능보다 형태에 중점을 둔 것 같다고 평가함.

- 다섯 번째 댓글 요약:
  - 지연 시간 정보의 기원과 관련된 자료들을 나열하며, 이 정보의 역사적 배경을 제공함.

- 여섯 번째 댓글 요약:
  - 네트워킹과 관련된 지연 시간이 직관적이지 않다고 언급함.
  - Google Stadia와 같은 서비스가 기대치에 비해 어떻게 빠를 수 있는지에 대한 개인적인 경험을 공유함.

- 일곱 번째 댓글 요약:
  - Firefox 모바일 사용자로서, UI가 무엇을 보여주려는지 이해하지 못하고 있음을 표현함.

- 여덟 번째 댓글 요약:
  - UI에 표시된 숫자의 의미를 이해하지 못하고 있으며, 이것이 미래의 연도를 나타내는 것처럼 보인다고 혼란을 표현함.

- 아홉 번째 댓글 요약:
  - 제목이 다소 미스터리하며, 16, 256, 65536 등의 숫자에 대한 내용을 기대했다고 언급함.
  - 2030년에 1K 바이트를 기가비트 네트워크로 보내는 것이 CPU 내부의 분기 예측 실패보다 빠를 것이라는 주장에 대해 회의적임을 표현함.
