Hacker News new | past | comments | ask | show | jobs | submit login

With timings that are several orders of magnitude in difference I'd just ignore the constants between factors as they change too frequently. Also there is a difference between latency and bandwidth and the chart is simply inconsistent.

CPU Cycle ~ 1 time unit Anything you do at all. The cost of doing business.

CPU Cache Hit ~ 10 time units Something that was located close to something else that was just accessed by either time or location.

Memory Access ~ 100 time units Something that most likely has been accessed recently, but not immediately previously in the code.

Disk Access ~ 1,000,000 time units It's been paged out to disk because it's accessed too infrequently or is too big to fit in memory.

Network Access ~ 100,000,000 time units It's not even here. Damn. Go grab it from that long series of tubes. Roughly about the same amount of time it takes to blink your eye.

It's probably worthwhile to differentiate between local network access and remote network access, and also differentiating between spinning disks and SSD.

Local gigabit network ping time is 200 μs and an SSD typically reads a 4K block in 25 μs. I imagine that converts to 200,000 time units and 25,000 time units, respectively.

"there is a difference between latency and bandwidth the chart is simply inconsistent".

Both transmission delay and propagation delay are measured in units of time -- I don't understand how it's inconsistent. If you'd like to change the payload size, I've made it very easy to do so -- simply change the html at the bottom of the page and it will be reflected immediately up top.

Thank you. This is much more useful for the sake of creating code. The raw numbers are irrelevant in the overwhelming majority of cases. What matters are the ratios. They impact the decisions we make every day.

Applications are open for YC Summer 2019

Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | Legal | Apply to YC | Contact