mirror of
https://github.com/telemt/telemt.git
synced 2026-11-01 13:21:58 +03:00
Timeline as Diagram
This commit is contained in:
@@ -119,17 +119,33 @@ flowchart LR
|
||||
|
||||
В этом примере подготовка обычного MTProxy занимает 40 мс на TCP. Подготовка WEB занимает 750 мс: 50 мс на запуск клиента/моста + 40 мс TCP + 40 мс TLS + 120 мс HTTP-обмена загрузки моста/создания сессии + 500 мс ожидания Android checker. Здесь выбраны последовательные длительности; в действительности этапы могут перекрываться. Начальный TLS и ожидание 500 мс находятся вне отображаемого ping.
|
||||
|
||||
Шкала ниже начинается с **последней временной метки запроса** каждой проверки, а не с запуска приложения или первой попытки соединения. Один символ соответствует 20 мс. Три строки — отдельные сценарии, а не одновременные запросы:
|
||||
Диаграмма начинается с **последней временной метки запроса** каждой проверки, а не с запуска приложения или первой попытки соединения. Горизонтальная ось показывает секунды с точностью до миллисекунд (0.200 = 200 мс). Ширина полос пропорциональна длительности. Каждая секция — отдельный сценарий; его этапы выполняются последовательно, а не параллельно. Начальная подготовка остаётся за пределами диаграммы.
|
||||
|
||||
```text
|
||||
0 200 400 600 800 1000 1200 мс
|
||||
|---------|---------|---------|---------|---------|---------|
|
||||
Classic/DD RRRRR 100 мс
|
||||
WEB UURRRRRDDD 200 мс
|
||||
WEB + retry FF..................................................UURRRRRDDD 1240 мс
|
||||
```mermaid
|
||||
%%{init: {"theme": "neutral", "gantt": {"leftPadding": 200, "rightPadding": 100, "barHeight": 24, "barGap": 8, "fontSize": 14, "sectionFontSize": 14}}}%%
|
||||
gantt
|
||||
dateFormat x
|
||||
axisFormat %S.%L
|
||||
tickInterval 200millisecond
|
||||
todayMarker off
|
||||
title Отображаемый ping - условная модель
|
||||
accTitle: Отображаемый ping - условная модель
|
||||
accDescr: Секунды от метки запроса, подписи этапов в миллисекундах
|
||||
section Classic/DD - 100 мс
|
||||
R 100 мс :n_r, 0, 100ms
|
||||
section WEB без ошибок - 200 мс
|
||||
U 40 мс :w_u, 0, 40ms
|
||||
R 100 мс :w_r, after w_u, 100ms
|
||||
D 60 мс :w_d, after w_r, 60ms
|
||||
section WEB с повтором - 1240 мс
|
||||
F 40 мс :crit, f_u, 0, 40ms
|
||||
Ожидание 1000 мс :crit, retry_wait, after f_u, 1000ms
|
||||
U 40 мс :retry_u, after retry_wait, 40ms
|
||||
R 100 мс :retry_r, after retry_u, 100ms
|
||||
D 60 мс :retry_d, after retry_r, 60ms
|
||||
```
|
||||
|
||||
Далее указаны длительности целых участков из одинаковых символов, а не одного символа: `R` = 100 мс базовой работы MTProxy relay/сети/DC для запроса и ответа. `U` = 40 мс дополнительной работы WEB на отправке/OPEN/клиенте. `D` = 60 мс дополнительной работы WEB на приёме и доставке. `F` = 40 мс одной неудачной попытки upload. `.` = 1000 мс ожидания по `Retry-After: 1`. `U` и `D` — условные дополнительные затраты сверх `R`, а не повторный учёт полного сетевого RTT. Ожидание ACK/commit учитывается лишь в той мере, в какой оно действительно задержало доставку.
|
||||
Длительности этапов: `R` = 100 мс базовой работы MTProxy relay/сети/DC для запроса и ответа. `U` = 40 мс дополнительной работы WEB на отправке/OPEN/клиенте. `D` = 60 мс дополнительной работы WEB на приёме и доставке. `F` = 40 мс одной неудачной попытки upload. `Ожидание` = 1000 мс ожидания по `Retry-After: 1`. `U` и `D` — условные дополнительные затраты сверх `R`, а не повторный учёт полного сетевого RTT. Ожидание ACK/commit учитывается лишь в той мере, в какой оно действительно задержало доставку.
|
||||
|
||||
| Сценарий | До таймера ping | Отображаемый ping | Полное время проверки в модели |
|
||||
| --- | --- | --- | --- |
|
||||
|
||||
Reference in New Issue
Block a user