Translate RU: appendix

pull/502/head
voitau 2020-05-03 21:57:26 -07:00
parent d4a15a48ba
commit 63459c2f31
1 changed files with 49 additions and 5 deletions

View File

@ -3005,7 +3005,7 @@ l10n:p -->
### Back pressure ### 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).
<!-- l10n:p <!-- l10n:p
### Disadvantage(s): asynchronism ### Disadvantage(s): asynchronism
@ -3341,7 +3341,7 @@ l10n:p -->
## Appendix ## Appendix
TBD Вас иногда могут попросить сделать оценку по времени "на салфетке". Например, определить, сколько времени понадобится для генерации 100 миниатюр изображений с жесткого диска, или сколько памяти потребует структура данных. **Степеней двойки** и **Время выполнения задач, которые должен знать любой программист** могут в этом помочь.
<!-- l10n:p <!-- l10n:p
### Powers of two table ### Powers of two table
@ -3362,7 +3362,18 @@ l10n:p -->
### Powers of two table ### 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
```
<!-- l10n:p <!-- l10n:p
#### Source(s) and further reading #### Source(s) and further reading
@ -3372,7 +3383,7 @@ l10n:p -->
#### Source(s) and further reading #### Source(s) and further reading
TBD * [Powers of two](https://en.wikipedia.org/wiki/Power_of_two)
<!-- l10n:p <!-- l10n:p
### Latency numbers every programmer should know ### Latency numbers every programmer should know
@ -3415,7 +3426,40 @@ l10n:p -->
### Latency numbers every programmer should know ### 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
<!-- l10n:p <!-- l10n:p
#### Latency numbers visualized #### Latency numbers visualized