Toolify

ストップウォッチ (ミリ秒精度、ラップ計測)

performance.now() を使用しジッター無しで計測。開始、一時停止、再開、ラップ記録、リセット。各ラップは前ラップからの差(スプリット)と累積時間を表示。

00:00:00.000

仕組み

なぜ正確か

多くのブラウザストップウォッチは Date.now() と setInterval を使い、セッション中に数十ミリ秒のずれが生じる。本実装は単調クロックの performance.now() を使用、システム時計が調整されてもジャンプしない。requestAnimationFrame で表示更新と組み合わせ、誤差±1ms以内。

タブを切り替えると表示は一時的に固まる(ブラウザがバックグラウンド処理を抑制するため)。内部時計は正しく進み続け、戻ると実経過時間に追いつく。

ラップとスプリット

ラップを押すと現在の累積時間が記録される。表示されるスプリットは前ラップからの差: 5×400m走では各スプリットが1区間の時間、累積はスタートからの総経過時間。

多くの利用者はスプリットを重視するが累積も併記。累積を見ると最速区間が一目でわかり、インターバル一貫性のチェックに有用。

用途

スポーツ: ランニング、水泳、自転車のインターバルラップ計測。一貫性はペース感の良さの指標。

料理: 複数工程を同時計時、ラップを「混ぜた」「生地を寝かせ始めた」などのチェックポイントに。

学習・仕事: 集中作業のタイムボックス化。Pomodoroタイマーと組み合わせ規則的な休憩を。

プロセス計測: ソフトビルド、手動データ入力、サポート対応の所要時間。後で確認するためラップ一覧を活用。

よくある質問

タブを閉じても続く?

閉じるとメモリ状態が消える。長時間計測を残すには稼働中の表示をスクショ、またはラップ一覧を閉じる前にコピー。

実用上のミリ秒精度は?

performance.now() の解像度はブラウザ依存。多くは1msまたは0.1msに制限(タイミング攻撃緩和)。人間スケールには十分(人間の反応速度は約250ms)。

60fps更新でなぜミリ秒表示?

内部時計は精密、表示は約60回/秒で更新。各フレームで performance.now() から最新経過を計算し滑らかに表示。

ラップ記録を保存可能?

現状は手動コピーのみ。ローカル保存はロードマップ。

スマホのストップウォッチとの違い?

ブラウザ動作、アプリ不要。人間スケール精度は同等。スマホは画面ロックでも動作、ブラウザはタブを開いたままにする必要(フォーカス不要)。

データは送信される?

送信されない。すべてローカル動作、ラップや時間は外部に送られない。

ラップが0msになるのはなぜ?

開始直後にラップを押すと表示精度で0に丸められる場合あり。ラップ間に少なくとも数百ms間を空ける。

サブ秒イベントを計測可能?

約1msまで可。ナノ秒級(チップベンチマーク)は別ツール、人間が観測可能なイベントには十分。

関連ツール

最終更新:

AIプロンプトも見る →