Я всё время теряю эти циферки, особенно когда они нужны в процессе ожесточённой беседы про производительность. Забываю ключевые слова для поиска, нахожу не те картинки.
А ведь эти циферки очень полезны для всех, кто так или иначе интересуется производительностью. Эти цифры и картинка иллюстрируют, что, например, поход в БД значительно более приоритетная цель для оптимизаций, чем, например, замена List на Dictionary. Или что сеть может съесть все перформансные улучшения, связанные с переходом на struct и Span.
Не забывайте про эти цифры, когда исследуете проблемы с производительностью. Смотрите на то, что реально тратит время (или память).
Взял отсюда, а ссылаются ещё вот сюда.
P.S.: Сами цифры вызывают вопросы, но в том, что их отношение друг к другу примерно такое - сомнений нет.
P.P.S: Коллега ещё напоминает о стоимости операций.
L1 cache reference ...................... 0.5 ns
Branch mispredict ......................... 5 ns
L2 cache reference ........................ 7 ns
Mutex lock/unlock ........................ 25 ns
Main memory reference ................... 100 ns
Syscall on Intel 5150 ................... 105 ns
Compress 1K bytes with Zippy .......... 3,000 ns
Context switch on Intel 5150 .......... 4,300 ns
Send 2K bytes over 1 Gbps network .... 20,000 ns
SSD random read ..................... 150,000 ns
Read 1 MB sequentially from memory .. 250,000 ns
Round trip within same datacenter ... 500,000 ns
Read 1 MB sequentially from SSD* .. 1,000,000 ns
Disk seek ........................ 10,000,000 ns
Read 1 MB sequentially from disk . 20,000,000 ns
Send packet CA->Netherlands->CA . 150,000,000 ns
