Наносекунди, мікросекунди та мілісекунди — пояснення на реальних прикладах

Більшість людей інтуїтивно розуміють секунди, хвилини та години. Але підсекундні одиниці — мілісекунди, мікросекунди й наносекунди — це те, на чому живуть обчислення, мережі та точні вимірювання. Це не просто «менші секунди»: кожна одиниця відповідає зовсім іншому масштабу процесів, і плутанина між ними в неправильному контексті може означати різницю між швидкою системою та зламаною.

Time Converter конвертує всі одиниці часу, включно з мілісекундами та секундами. У цій статті ми детально розглянемо підсекундні одиниці: що вони вимірюють, як пов’язані між собою і де реально зустрічаються.

Одиниці та їхні співвідношення

Якщо рухатися вниз від секунди:

ОдиницяПозначенняЧастка секундиСтепінь 10
Мілісекундаms1/1 00010⁻³
Мікросекундаµs1/1 000 00010⁻⁶
Наносекундаns1/1 000 000 00010⁻⁹
Пікосекундаps1/1 000 000 000 00010⁻¹²

Кожен крок — рівно у 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 мілісекунд може бути занадто мало для запиту до БД під навантаженням.

Правильна одиниця — це не «педантизм». Це різниця між системою, що поводиться коректно, і системою, яка ламається тонко й боляче для діагностики.

Схожі статті