Milisaat ke Saat — Rujukan Penukaran Masa untuk Pembangun

Milisaat muncul berterusan dalam pembangunan perisian. Timeout ditetapkan kepada 5000ms. Had kadar API mengatakan "100 permintaan setiap 10 saat." Animasi berjalan selama 300ms. Cap masa Unix dalam milisaat di JavaScript tetapi saat di Python. Penukaran adalah mudah — 1 saat = 1,000 milisaat — tetapi mempunyai nilai umum di tangan menghemat beban mental.

Penukar Masa mengendalikan milisaat, saat, minit, jam, dan banyak lagi. Artikel ini adalah rujukan praktikal dengan nilai yang sering dihadapi oleh pembangun.

Penukaran Asas

1 saat = 1,000 milisaat

1 milisaat = 0.001 saat

saat = milisaat ÷ 1,000

milisaat = saat × 1,000

Segalanya lain mengikut dari ini:

  • 1 minit = 60,000 ms
  • 1 jam = 3,600,000 ms
  • 1 hari = 86,400,000 ms

Nilai Umum dalam Kod

Ini adalah nilai yang akan anda taip atau hadapi secara teratur:

TempohMilisaatSaat
Satu bingkai pada 60fps~16 ms0.016 s
Peralihan animasi (cepat)150–200 ms0.15–0.2 s
Peralihan animasi (normal)250–300 ms0.25–0.3 s
Peralihan animasi (perlahan)400–600 ms0.4–0.6 s
Masa tindak balas manusia purata~250 ms0.25 s
Timeout permintaan HTTP (cepat)1,000 ms1 s
Timeout permintaan HTTP (piawai)5,000 ms5 s
Timeout permintaan HTTP (murah hati)30,000 ms30 s
Tetingkap had kadar60,000 ms60 s (1 min)
Tamat tempoh token JWT (pendek)900,000 ms900 s (15 min)
Tamat tempoh token JWT (piawai)3,600,000 ms3,600 s (1 jam)
Tetingkap had kadar harian86,400,000 ms86,400 s (24 jam)
Timeout sesi (piawai)1,800,000 ms1,800 s (30 min)

Jadual Rujukan: Saat ke Milisaat

SaatMilisaat
0.1 s100 ms
0.25 s250 ms
0.5 s500 ms
1 s1,000 ms
2 s2,000 ms
5 s5,000 ms
10 s10,000 ms
15 s15,000 ms
30 s30,000 ms
60 s (1 min)60,000 ms
120 s (2 min)120,000 ms
300 s (5 min)300,000 ms
600 s (10 min)600,000 ms
900 s (15 min)900,000 ms
1,800 s (30 min)1,800,000 ms
3,600 s (1 jam)3,600,000 ms
86,400 s (1 hari)86,400,000 ms

Milisaat dalam Bahasa Berbeza

Bahasa dan persekitaran yang berbeza menggunakan unit masa lalai yang berbeza. Ini adalah sumber biasa pepijat halus.

JavaScript: Date.now() mengembalikan milisaat. setTimeout(fn, 5000) mengambil milisaat. new Date().getTime() mengembalikan milisaat.

const ts_ms = Date.now();                   // milisaat
const ts_s = Math.floor(Date.now() / 1000); // saat
setTimeout(fn, 5 * 1000);                   // 5 saat dalam ms

Python: time.time() mengembalikan saat (float). time.sleep(5) mengambil saat.

import time
ts_s = time.time()          # saat (float)
ts_ms = time.time() * 1000  # milisaat
time.sleep(0.5)             # 500ms dalam saat

Node.js process.hrtime(): Mengembalikan nanoaat (ketepatan sangat tinggi). performance.now() mengembalikan milisaat.

const start = performance.now();
// ... buat sesuatu ...
const elapsed_ms = performance.now() - start;
const elapsed_s = elapsed_ms / 1000;

Animasi dan peralihan CSS: Gunakan saat sebagai unit.

transition: all 0.3s ease;      /* 300ms */
animation-duration: 1.5s;       /* 1500ms */

Redis TTL: EXPIRE key seconds — mengambil saat, bukan milisaat. PEXPIRE key milliseconds adalah versi milisaat.

Ungkapan cron: Berfungsi dalam keseluruhan saat pada granulariti paling halus (beberapa pelaksanaan, seperti Spring's @Scheduled, menyokong saat; cron unix piawai adalah granulariti minit).

Cap Masa Unix: Saat lwn Milisaat

Pepijat lintas bahasa yang paling umum melibatkan milisaat: cap masa Unix.

  • Piawai Unix adalah saat sejak epoch (1 Januari 1970)
  • Date.now() JavaScript adalah milisaat sejak epoch
  • Cap masa saat adalah 10 digit (kini ~1.7 bilion)
  • Cap masa milisaat adalah 13 digit (kini ~1.7 trilion)

Jika anda menghantar cap masa JavaScript milisaat ke bahagian belakang Python yang menjangkakan saat, anda mendapat tarikh pada tahun 55,000. Jika anda menghantar cap masa saat ke new Date() JavaScript, anda mendapat tarikh pada 1970.

Heuristik pengesanan:

  • 10 digit = saat
  • 13 digit = milisaat
// Normalkan ke saat tanpa mengira format input
function toSeconds(ts) {
    return ts > 9999999999 ? Math.floor(ts / 1000) : ts;
}

Pengukuran Prestasi

Apabila mengprofilkan kod atau mengukur masa pelaksanaan, milisaat dan mikroaat muncul bergantung pada apa yang anda ukur.

SkalaUnitContoh penggunaan
< 1 msMikroaat (µs)Operasi CPU, akses memori
1–100 msMilisaatPertanyaan pangkalan data, panggilan API, render
100–1,000 msMilisaatPertanyaan perlahan, pemprosesan imej
> 1 sSaatMasa pemuatan halaman, pemprosesan kelompok

Untuk prestasi web:

  • < 100 ms: Terasa serta-merta
  • 100–300 ms: Boleh diperhatikan tetapi boleh diterima
  • 300–1,000 ms: Terasa perlahan; penenun mungkin diperlukan
  • > 1 s: Pengguna menganggap sebagai "memuatkan"

Core Web Vitals Google menggunakan milisaat: Largest Contentful Paint (LCP) sepatutnya di bawah 2,500ms, Interaction to Next Paint (INP) di bawah 200ms, Cumulative Layout Shift tidak mempunyai unit.

Had Kadar dan Penimbal

Had kadar sering dinyatakan dalam permintaan setiap tetingkap masa. Menukar tetingkap ke milisaat berguna untuk melaksanakan logik penimbal:

Had kadarTetingkap dalam msMasa antara permintaan
100 req/s1,000 ms10 ms minimum
60 req/min60,000 ms1,000 ms minimum
1,000 req/jam3,600,000 ms3,600 ms minimum
10,000 req/hari86,400,000 ms8,640 ms minimum

Pelaksanaan penimbal mudah menggunakan tetingkap dalam milisaat:

const RATE_LIMIT_WINDOW_MS = 60 * 1000; // 60 saat
const MAX_REQUESTS = 60;
// satu permintaan setiap 1000ms secara purata
const MIN_INTERVAL_MS = RATE_LIMIT_WINDOW_MS / MAX_REQUESTS; // 1000

Untuk sebarang penukaran unit masa lain di luar milisaat — hari ke jam, minggu ke minit, tahun ke saat — Penukar Masa meliputi julat penuh.

Artikel berkaitan