Skip to content

masllova/LatencyProfiler

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

16 Commits
 
 
 
 
 
 
 
 

Repository files navigation

LatencyProfiler

Lightweight client-side latency profiler для iOS

Инструмент для анализа задержек сетевых запросов прямо на клиенте

LatencyProfiler - это лёгкая библиотека, которая автоматически измеряет время выполнения сетевых запросов в приложении и показывает:

• какие API работают медленно
• насколько они стабильны
• где возникают проблемы

Без прокси, без внешних инструментов — прямо в коде.

Возможности

• автоматическое отслеживание запросов (URLSession)
• нормализация endpoint (/users/1 → /users/:id)
• метрики p50 / p95
• fastest / typical / slowest latency
• распределение задержек (latency distribution) • список самых медленных endpoint
• debounce логирования (без спама)
• простая интеграция (zero-config)

Установка (SPM)

.package(url: "https://github.com/yourname/LatencyProfiler.git", from: "1.0.0")

Использование

Интегрирован в нативный механизм URLSession, необоходимо подключить только расширение метода .trackedData(from: URL, alias: String?)

let url = URL(string: "https://jsonplaceholder.typicode.com/users/1")!

let (data, _) = try await URLSession.shared.trackedData(from: url)

С alias

let (data, _) = try await URLSession.shared.trackedData(
    from: url,
    alias: "User API"
)

Пример вывода в консоль

[LatencyProfiler] Summary

🌐 Endpoint: httpbin get
Calls: 5
Fastest: 0.140s
Typical: 0.578s
P95: 0.636s
Slowest: 0.653s

Latency distribution:
<100ms: 0
100-300ms: 2
300ms-1s: 3
1s+: 0

🌐 Endpoint: JSONPlaceholder posts
Calls: 4
Fastest: 0.045s
Typical: 0.045s
P95: 0.046s
Slowest: 0.166s

Latency distribution:
<100ms: 3
100-300ms: 1
300ms-1s: 0
1s+: 0

🌐 Endpoint: Random duck
Calls: 6
Fastest: 0.072s
Typical: 0.080s
P95: 0.349s
Slowest: 39.141s

Latency distribution:
<100ms: 3
100-300ms: 1
300ms-1s: 1
1s+: 1

❗️ Top slow endpoints:
- httpbin get: 0.636s (p95)
- Random duck: 0.349s (p95)
- JSONPlaceholder posts: 0.046s (p95)

Как читать статистику

Основные метрики

• Fastest - самый быстрый запрос
• Typical (p50) — обычное время ответа
• P95 - почти худший сценарий
• Slowest - самый долгий запрос

Распределение задержек

<100ms → быстрые запросы
100-300ms → нормальные
300ms-1s → заметная задержка
1s+ → проблема

Top slow endpoints: показывает какие API реально тормозят приложение

Что именно измеряется

LatencyProfiler считает client-side latency, то есть:

• время ожидания сети
• обработку на сервере
• установку соединения
• задержки системы

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages