diff --git a/README-ru.md b/README-ru.md index 1fa3990f..a4576b39 100644 --- a/README-ru.md +++ b/README-ru.md @@ -3005,7 +3005,7 @@ l10n:p --> ### Back pressure -Если очередь достигает больших размеров, ее размер может стать больше память, что приведет к запросам элементов, которых нет в кэши, увеличению количества операций чтения с жесткого диска и ухудшению производительности. [Обратное давление](http://mechanical-sympathy.blogspot.com/2012/05/apply-back-pressure-when-overloaded.html) может помочь, ограничивая размер очереди и поддерживая высокую пропускную способность и хорошее время отклика для задач, которые уже находятся в очереди. Как только очередь заполнится, клиентские приложения получают 503 код состояния HTTP ("Сервис недоступен"). Клиенты могут повторить запрос позже, в том числе и с [экспоненциальной выдержкой](https://ru.wikipedia.org/wiki/%D0%AD%D0%BA%D1%81%D0%BF%D0%BE%D0%BD%D0%B5%D0%BD%D1%86%D0%B8%D0%B0%D0%BB%D1%8C%D0%BD%D0%B0%D1%8F_%D0%B2%D1%8B%D0%B4%D0%B5%D1%80%D0%B6%D0%BA%D0%B0). +Если очередь достигает больших размеров, ее размер может стать больше памяти, что приведет к запросу элементов, которых нет в кэши, увеличению количества операций чтения с жесткого диска и ухудшению производительности. [Обратное давление](http://mechanical-sympathy.blogspot.com/2012/05/apply-back-pressure-when-overloaded.html) может помочь, ограничивая размер очереди и поддерживая высокую пропускную способность и хорошее время отклика для задач, которые уже находятся в очереди. Как только очередь заполнится, клиентские приложения получают 503 код состояния HTTP ("Сервис недоступен"). Клиенты могут повторить запрос позже, в том числе и с [экспоненциальной выдержкой](https://ru.wikipedia.org/wiki/%D0%AD%D0%BA%D1%81%D0%BF%D0%BE%D0%BD%D0%B5%D0%BD%D1%86%D0%B8%D0%B0%D0%BB%D1%8C%D0%BD%D0%B0%D1%8F_%D0%B2%D1%8B%D0%B4%D0%B5%D1%80%D0%B6%D0%BA%D0%B0). ## Appendix -TBD +Вас иногда могут попросить сделать оценку по времени "на салфетке". Например, определить, сколько времени понадобится для генерации 100 миниатюр изображений с жесткого диска, или сколько памяти потребует структура данных. **Степеней двойки** и **Время выполнения задач, которые должен знать любой программист** могут в этом помочь. ### Powers of two table -TBD +``` +Степень Точное значение Приблизительное значение Байты +--------------------------------------------------------------------- +7 128 +8 256 +10 1024 1 тысяча 1 KB +16 65,536 64 KB +20 1,048,576 1 миллион 1 MB +30 1,073,741,824 1 миллиард 1 GB +32 4,294,967,296 4 GB +40 1,099,511,627,776 1 триллион 1 TB +``` #### Source(s) and further reading -TBD +* [Powers of two](https://en.wikipedia.org/wiki/Power_of_two) ### Latency numbers every programmer should know -TBD +``` +Время выполнения +-------------------------- +Обращение к кэшу первого уровня (L1) 0.5 ns +Использование альтернативной ветки 5 ns +Обращение к кэшу первого уровня (L2) 7 ns 14x L1 кэша +Блокировка/снятие блокировки (mutex) 25 ns +Обращение к основной памяти 100 ns 20x L2 кэша, 200x L1 кэша +Сжатие 1 КB с помощью Zippy 10,000 ns 10 us +Отправить 1 KB по сети 1 Gbps 10,000 ns 10 us +Считать 4 KB случайно с SSD* 150,000 ns 150 us ~1GB/sec SSD +Считать 1 MB последовательно из памяти 250,000 ns 250 us +Полный обход внутри дата-центра 500,000 ns 500 us +Считать 1 MB последовательно с SSD* 1,000,000 ns 1,000 us 1 ms ~1GB/sec SSD, 4X памяти +Поиск на диске 10,000,000 ns 10,000 us 10 ms 20x полного обхода дата-центра +Считать 1 MB последовательно по сети 1 Gbps 10,000,000 ns 10,000 us 10 ms 40x памяти, 10X SSD +Считать 1 MB послеодовательно с диска 30,000,000 ns 30,000 us 30 ms 120x памяти, 30X SSD +Послать пакет данных Калифорния->Нидерланды->Калифорния 150,000,000 ns 150,000 us 150 ms + +Заметки +----- +1 ns = 10^-9 seconds +1 us = 10^-6 seconds = 1,000 ns +1 ms = 10^-3 seconds = 1,000 us = 1,000,000 ns +``` + +Некоторые значения на основе данных выше + +* Последовательное чтение с диска - скорость 30 MB/s +* Последовательное чтение из канала 1 Gbps сети Ethernet - скорость 100 MB/s +* Последовательное чтение с SSD - скорость 1 GB/s +* Последовательное чтение из основной памяти - скоростью 4 GB/s +* Количество полных обходов вокруг земного шара в секунду - 6-7 +* Количество полных обходов внутри дата-центра в секунду - 2,000