Наносекунди, мікросекунди та мілісекунди — пояснення на реальних прикладах
Більшість людей інтуїтивно розуміють секунди, хвилини та години. Але підсекундні одиниці — мілісекунди, мікросекунди й наносекунди — це те, на чому живуть обчислення, мережі та точні вимірювання. Це не просто «менші секунди»: кожна одиниця відповідає зовсім іншому масштабу процесів, і плутанина між ними в неправильному контексті може означати різницю між швидкою системою та зламаною.
Time Converter конвертує всі одиниці часу, включно з мілісекундами та секундами. У цій статті ми детально розглянемо підсекундні одиниці: що вони вимірюють, як пов’язані між собою і де реально зустрічаються.
Одиниці та їхні співвідношення
Якщо рухатися вниз від секунди:
| Одиниця | Позначення | Частка секунди | Степінь 10 |
|---|---|---|---|
| Мілісекунда | ms | 1/1 000 | 10⁻³ |
| Мікросекунда | µs | 1/1 000 000 | 10⁻⁶ |
| Наносекунда | ns | 1/1 000 000 000 | 10⁻⁹ |
| Пікосекунда | ps | 1/1 000 000 000 000 | 10⁻¹² |
Кожен крок — рівно у 1 000× менше. 1 мілісекунда = 1 000 мікросекунд. 1 мікросекунда = 1 000 наносекунд. Тобто 1 мілісекунда = 1 000 000 наносекунд.
Щоб уявити 1 наносекунду: світло проходить приблизно 30 см (близько 1 фута) за 1 нс. За час, поки світло перетинає кімнату (приблизно 10 нс), сучасний CPU може виконати 10–30 інструкцій.
Мілісекунди (ms): обчислення «людського масштабу»
Мілісекунда — це 1/1 000 секунди. На цьому рівні в технологіях починає бути важливим людське сприйняття.
Час реакції людини на візуальний стимул у середньому 150–250 ms. Це задає планку «миттєвості» в UI: усе, що до 100 ms, відчувається як моментально; 100–300 ms помітно, але прийнятно; понад 300 ms користувачі сприймають як затримку.
Час завантаження вебсторінок вимірюють у мілісекундах. Сторінка, що завантажується за 500 ms, відчувається швидкою; 2 000 ms (2 секунди) вже починає дратувати. У Google Core Web Vitals ціль для Largest Contentful Paint — менше 2 500 ms.
Мережева затримка всередині дата-центру зазвичай 1–5 ms. Між континентами (Нью-Йорк ↔ Лондон) — орієнтовно 70–90 ms. Нью-Йорк ↔ Токіо — близько 150–170 ms. Ці числа задають «нижню межу» швидкості будь-якої мережевої операції незалежно від того, наскільки швидко працює сервер.
Запити до бази даних у добре оптимізованій системі часто виконуються за 1–50 ms. Запит на 500 ms — повільний; понад 1 000 ms (1 секунду) зазвичай уже вважають проблемою.
Аудіобуфери в софті для звукозапису задають у мілісекундах. Буфер 10 ms дає 10 ms затримки між натисканням ноти й тим, як ви її чуєте — зазвичай непомітно. 50 ms уже відчутно при живій грі на клавішних. Багато сетапів намагаються тримати 5–20 ms.
Frame time у іграх — це мілісекунди на кадр: гра на 60 fps рендерить кадр кожні 16,67 ms. На 120 fps — кожні 8,33 ms. Саме в frame time геймдеви вимірюють продуктивність.
Мікросекунди (µs): мережі та «внутрішня» ОС
Мікросекунда — 1/1 000 000 секунди, тобто у 1 000 разів менше за мілісекунду. Це масштаб високопродуктивних обчислень, low-latency мереж і внутрішніх механізмів ОС.
Високочастотна торгівля (HFT) працює в мікросекундних затримках. Ко-локовані торгові системи біля бірж часто мають round-trip 1–10 µs. Перевага 100 µs на швидких ринках може означати мільйони прибутку.
Час доступу до SSD для випадкових читань зазвичай 50–150 µs. Для HDD це 5–10 ms — тобто SSD швидші у 50–100× за цим показником. NVMe SSD ще швидші: 20–50 µs.
Перемикання контексту CPU (коли ОС переключається між процесами) займає 1–10 µs. Через цей оверхед high-performance системи мінімізують context switching — наприклад, через event-driven архітектури або виділені ядра.
Доступ до пам’яті (RAM) займає близько 50–100 ns (наносекунд), але cache miss, який змушує йти в RAM, інколи на практиці описують числами порядку 50–100 µs, якщо враховувати супутній оверхед розв’язання промаху кешу в реальних програмах.
Передача Ethernet кадру на 10 Gbps для кадру 1 500 байт займає приблизно 1 µs. А затримка поширення сигналу між двома пристроями в одному rack у дата-центрі може бути 100–500 ns.
Наносекунди (ns): апаратний рівень
Наносекунда — 1/1 000 000 000 секунди, у 1 000 разів менше за мікросекунду. На цьому масштабі фізична швидкість світла стає відчутним обмеженням.
Тактові цикли CPU вимірюються в наносекундах. Процесор 3 GHz виконує один цикл за 0,33 ns. Одна інструкція зазвичай займає 1–4 цикли (0,33–1,3 ns) у сучасному конвеєрному CPU.
Час доступу до кешу CPU:
- L1: ~1 ns (2–4 цикли)
- L2: ~4 ns (10–15 циклів)
- L3: ~10–40 ns (30–100 циклів)
- RAM: ~50–100 ns (150–300 циклів)
Тому дизайн кешів критичний: програма, що «вміщується» в L1, працює помітно швидше за ту, що регулярно промахується і ходить у RAM.
Швидкість пам’яті та таймінги також оперують наносекундами. Наприклад, у DDR5 час циклу близько 0,625 ns (що відповідає ефективній швидкості 6 400 MT/s). Таймінги типу “CL16” означають, що затримка CAS дорівнює 16 тактових циклів.
Кабелі та PCIe мають затримки поширення сигналу на рівні наносекунд. Сигнал у мідному кабелі поширюється приблизно зі швидкістю 2/3 від швидкості світла — орієнтовно 20 см/нс. Кабель 1 метр додає приблизно 5 ns затримки.
GPS-таймінг потребує наносекундної точності. Супутники GPS повинні синхронізувати годинники в межах 20–30 ns, щоб забезпечувати точність позиціонування на рівні метрів. Помилка лише 10 ns дає приблизно 3 метри похибки в координатах.
Перетворення між підсекундними одиницями
Перетворення йдуть за схемою 1 000×:
| З | В | Множити на |
|---|---|---|
| Секунди | Мілісекунди | × 1 000 |
| Мілісекунди | Секунди | ÷ 1 000 |
| Мілісекунди | Мікросекунди | × 1 000 |
| Мікросекунди | Мілісекунди | ÷ 1 000 |
| Мікросекунди | Наносекунди | × 1 000 |
| Наносекунди | Мікросекунди | ÷ 1 000 |
| Секунди | Наносекунди | × 1 000 000 000 |
Поширені перетворення:
- 1 секунда = 1 000 ms = 1 000 000 µs = 1 000 000 000 ns
- 100 ms = 100 000 µs = 100 000 000 ns
- 50 µs = 0,05 ms = 50 000 ns
- 500 ns = 0,5 µs = 0,0005 ms
Для перетворень від цих малих одиниць до хвилин, годин і днів Time Converter автоматично проходить увесь ланцюжок.
Чому точність одиниць важлива в коді
Під час роботи з timestamp-ами й вимірюванням часу в програмуванні плутанина одиниць — часте джерело багів. Найпоширеніші:
Секунди vs мілісекунди в API. Unix timestamp — у секундах; Date.now() у JavaScript — у мілісекундах. Якщо передати мілісекунди там, де очікуються секунди, отримаєте дати в 2527 році; якщо секунди там, де очікуються мілісекунди — дати в січні 1970.
Сон (sleep) не на той час. time.sleep(1) у Python робить паузу на 1 секунду. В інших фреймворках аналогічний виклик може приймати мілісекунди або мікросекунди. Завжди перевіряйте документацію, в яких одиницях задається тривалість.
Проблеми з вимірюванням продуктивності. Якщо ви бенчмаркаєте код таймером із роздільністю в мілісекундах, а операції тривають 10–50 µs, вимірювання не має сенсу — потрібен high-resolution clock. time.perf_counter() у Python і performance.now() у JavaScript дають підмілісекундну роздільність.
Неправильні таймаути мережі. Таймаут 100 може означати 100 мілісекунд або 100 секунд залежно від бібліотеки. 100 секунд — дуже довго для вебзапиту; 100 мілісекунд може бути занадто мало для запиту до БД під навантаженням.
Правильна одиниця — це не «педантизм». Це різниця між системою, що поводиться коректно, і системою, яка ламається тонко й боляче для діагностики.

