Чтобы было понятно, на чём следует концентрироваться при оптимизации, слайд из доклада «Создание программных систем в Google и его уроки»:
Обращение к кэшу L1 |
0.5 нс |
Ошибка при предсказании условного перехода |
5 нс |
Обращение к кэшу L2 |
7 нс |
Открытие/закрытие мьютекса |
25 нс |
Обращение к главной памяти |
100 нс |
Сжатие 1 Кб быстрым алгоритмом |
3,000 нс |
Пересылка 2Кб по сети со скоростью 1 Гб/с |
20,000 нс |
Чтение 1 Мб последовательно из главной памяти |
250,000 нс |
Передача сообщения туда/обратно в одном дата-центре |
500,000 нс |
Произвольный доступ к жёсткому диску |
10,000,000 нс |
Чтение 1 Мб последовательно с жёсткого диска |
20,000,000 нс |
Передача пакета из Калифорнии в Нидерланды и обратно |
150,000,000 нс |