JavaScriptでWebアプリケーションのパフォーマンスを計測する際、`performance.mark()`メソッドは非常に便利なツールです。このメソッドを使用することで、コードの特定の地点でマークを設定し、処理時間を正確に計測することができます。

performance.mark()の基本的な使い方

// 開始地点のマークを設定
performance.mark('start');

// 何らかの処理
for (let i = 0; i < 1000000; i++) {
    // 重い処理
}

// 終了地点のマークを設定
performance.mark('end');

// 2つのマーク間の測定結果を取得
const measure = performance.measure('処理時間', 'start', 'end');

// 結果をコンソールに表示
console.log(`処理時間: ${measure.duration}ミリ秒`);

performance.mark()のメリット

1. 高精度な計測が可能

2. ブラウザの開発者ツールと連携可能

3. コードの複数箇所で計測可能

実践的な使用例

// 非同期処理の計測
async function fetchData() {
    performance.mark('fetchStart');
    
    const response = await fetch('https://api.example.com/data');
    const data = await response.json();
    
    performance.mark('fetchEnd');
    performance.measure('データ取得時間', 'fetchStart', 'fetchEnd');
    
    const measurements = performance.getEntriesByType('measure');
    console.log(measurements);
}

エラー処理とベストプラクティス

マークの設定時は、以下の点に注意が必要です:

try {
    performance.mark('customMark');
} catch (error) {
    console.error('パフォーマンス計測に失敗:', error);
}

パフォーマンスエントリーの管理

不要になったマークは削除することをお勧めします:

// 特定のマークを削除
performance.clearMarks('start');

// すべてのマークを削除
performance.clearMarks();

// 測定結果を削除
performance.clearMeasures();

ブラウザの互換性

`performance.mark()`は、モダンブラウザ(Chrome、Firefox、Safari、Edge)で広くサポートされています。ただし、古いブラウザでは使用できない場合があるため、必要に応じてポリフィルを使用することをお勧めします。

まとめ

`performance.mark()`は、JavaScriptアプリケーションのパフォーマンス計測において強力なツールです。正確な時間計測が必要な場面で、デバッグやパフォーマンス最適化に大いに役立ちます。適切に使用することで、アプリケーションのボトルネックを特定し、パフォーマンスの向上に貢献できます。