Facts to know
在進行估算時,我們需要一些數字做為起頭,而使用越合理的數字,你得出的結果就越讓人信服,我們可以在得出粗估結果之後再尋求回饋,以下是你應該知道的數字:
| Power of 1000 (1000^x) | Number | Prefix |
|---|---|---|
| 0 | Unit | |
| 1 | Thousand | Kilo |
| 2 | Million | Mega |
| 3 | Billion | Giga |
| 4 | Trillion | Tera |
| 5 | Quadrillion | Peta |
Latencies
以下是一張可愛的圖,闡述電腦的運行時間與我們的認知時間之間的差異

以下是我們常用的操作所耗費的時間
| 操作 | 延遲 | 延遲(μs) | 延遲(ms) | 比較 |
|---|---|---|---|---|
| L1 緩存引用 | 0.5 ns | |||
| 分支預測錯誤 | 5 ns | |||
| L2 緩存引用 | 7 ns | 14x L1 緩存 | ||
| 互斥鎖定/解鎖 | 25 ns | |||
| 主內存引用 | 100 ns | 20x L2 緩存, 200x L1 緩存 | ||
| 用 Zippy 壓縮 1K 字節 | 3,000 ns | 3 μs | ||
| 通過 1 Gbps 網絡發送 1K 字節 | 10,000 ns | 10 μs | ||
| 從 SSD 隨機讀取 4K | 150,000 ns | 150 μs | ~1GB/秒 SSD | |
| 從內存順序讀取 1 MB | 250,000 ns | 250 μs | ||
| 同一數據中心的往返 | 500,000 ns | 500 μs | ||
| 從 SSD 順序讀取 1 MB | 1,000,000 ns | 1,000 μs | 1 ms | ~1GB/秒 SSD, 4X 內存 |
| 磁盤尋道 | 10,000,000 ns | 10,000 μs | 10 ms | 20x 數據中心往返 |
| 從磁盤順序讀取 1 MB | 20,000,000 ns | 20,000 μs | 20 ms | 80x 內存, 20X SSD |
| 加州到荷蘭再到加州的數據包往返 | 150,000,000 ns | 150,000 μs | 150 ms |
注意:
- 1 ns = 10^-9 秒
- 1 μs = 10^-6 秒 = 1,000 ns
- 1 ms = 10^-3 秒 = 1,000 μs = 1,000,000 ns
SSD 超高速的讀寫速度顛覆了傳統 HDD 的效能瓶頸,一台 server 加上一堆 SSD 可以做到過去一個伺服器集群可以做到的事,你的考官可能沒有意識到這點,你可以適時的提醒他
Storage
一些常見的檔案所佔用的儲存空間大概如下:
| Item | Size |
|---|---|
| A two-hour movie | 7 GB |
| A 15 mins movie | 1 GB |
| A small book of plain text | 1 MB |
| A high-resolution photo | 1 MB |
| A medium-resolution image (or a site layout graphic) | 100 KB |
我們這邊用 movie 來展開,雖然你可以直接背下來,但還是知道怎麼算出來的比較好
- 影片長度:2 hours = 120 mins
- 解析度:1080p
- 幀數:24fps ~ 60fps,我們可以使用落於中間的常見格式 30fps(參考)
- 壓縮格式:目前主流是 H.264,後起之秀有 H.266、VP9、AV1,但還沒有普及(編碼解碼吃效能,參考),所以這邊使用 H.264(參考)
未壓縮的 HD 影片,1920x1080像素、10-bit 色彩深度(有三個 color channel,每個 channel 有 10bits,參考)
\[1920 \times 1080 \times 30\ bits \times\ 30\ frames \div 8\ bits = \ 233280000\ bytes \approx 233\ MB\]每秒會產生 233 MB,不過通常為了確保觀看畫質與下載速率,透過 H.264 壓縮後,1080p 的影片的 bitrate(位元速率)需要控制在 4 ~ 8 Mbps(1 Mbps 等於 125KB/秒) 左右(參考),我們取平均為 6 Mbps(750KB/s),重新計算後得知
\[750\ KB/s \times 60\ secs \times 120\ mins = 5400000\ KB \approx 5.15\ GB\]Business
有些關於領域知識的數字,考官照理來說會提供給你,畢竟工程師可能對這些數字沒有概念,因此你也不用擔心這個數字你抓錯會被扣分
| Metric | Order of Magnitude |
|---|---|
| Daily active users of major social networks | O(1b) |
| Hours of video streamed on Netflix per day | O(100m) |
| Google searches per second | O(100k) |
| Size of Wikipedia | O(100gb) |