Translate RU: appendix
parent
d4a15a48ba
commit
63459c2f31
54
README-ru.md
54
README-ru.md
|
@ -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
|
||||||
|
|
Loading…
Reference in New Issue