アプリケーションが応答しない

macOS用Collectorは、Windows用Collectorとほぼ同様に、デバイスからアプリケーションが応答していないイベントを記録します。 ユーザー入力に応答しないアプリケーションは、従業員の全体的なExperienceに悪影響を与えるため、Digital Experience Score (DEX)の重要な部分となります。 DEXスコアのドキュメントを参照してください。

macOSでCollectorがアプリケーションが応答していないかどうかを判定する手法は、Windowsでの方法とは異なります。 この記事では、各PlatformでCollectorがどのようにしてアプリケーションが応答していないイベントを測定するか説明します。

Windowsでのアプリケーションが応答しない

Windowsでは、Collectorが定期的にアプリケーションの応答性をチェックするために、開いているウィンドウにメッセージを送信します。 アプリケーションがこれらのメッセージをタイムリーに処理しない場合、システムは新しいアプリケーションが応答していないイベントを作成します。

Windowsで応答しないアプリケーションを検出するために、NexthinkのコレクタはWindows API IsHungAppWindow を利用しています。 マイクロソフトのドキュメントarrow-up-rightによると、アプリケーションは以下の場合に応答がないと見なされます:

  • 入力を待っていない場合。

  • 起動処理を行っていない場合。

  • 内部的な5秒間のタイムアウト期間内に PeekMessage 関数を呼び出していない場合。

コレクタはこのAPIを30秒ごとにサンプリングし、アプリケーションが5秒以内に新しいユーザー入力を確認しない場合にのみフリーズを報告します。 このアプローチにより、Nexthinkはユーザーの操作に迅速に応答しないアプリケーションを特定できます。

アプリケーションのフリーズには、メインUIスレッドでの過剰な処理など、複数の原因が考えられます。 アプリケーションログは開発者の計測に頼るのに対し、この検出メカニズムはアプリケーションのログ記録とは独立して機能します。 アプリケーションログは通常、重大な障害のみを記録します。 この方法は、アプリケーションが実行し続けるが応答が遅い場合でも、完全なフリーズと短期間の非応答の両方を一貫して特定します。

macOSでのアプリケーションが応答しない

macOSでは、Collectorはオペレーティングシステムログを参照することで、アプリケーションが応答していないかどうかを確認します。 ただし、macOSは、ユーザーがアプリケーションを強制終了した後にのみ応答しないと報告します。

たとえば、ある時点でアプリケーションが応答しないが最終的に回復した場合、従業員がアプリケーションを強制終了しない限り、Collectorはそのアプリケーションを応答しないと報告しません。

Last updated

Was this helpful?