2011-07-30 3 views
19

可能性の重複:
What is the shortest perceivable application response delay?人間が検出できる最小の遅れは何ですか?

それは少しラグを感じているので、私はいくつかのJavaScript UIコードをプロファイリングしてきました。これまでは、いくつかのボトルネックを見つけ出し、それらを最適化しましたが、これには測定可能な要件を定義したいと思います。

人間が遅れを気付かないようにするためには、どのくらい迅速に応答が必要ですか?たとえば、キーボードのキーを押してから画面に文字が表示されるまでの遅延時間はどれくらいですか?どんな点でさらに最適化が人間に何の違いももたらさないだろうか?

多くのモニタでは、60-120Hzの範囲でリフレッシュレートが設定されています。それは魔法の数が約8-16msであることを意味しますか?

+0

これは非常に興味深い質問です。私はそれが異なると確信していますが、この分野でいくつかの非常に良い研究が必要です。 –

+0

の「インスタント」フィードバック - 私は約10msで最も速い人間の応答時間をテストすることを覚えています – Randy

+0

私は目がビデオで毎秒25フレームのような何かを処理できることを思い出します。 – Randy

答えて

10

、画面を見ながら、ユーザーがキーを押した場合、ということを意味し、彼はその後正確にそれを見たいと思うでしょう。この「正確に後で」とは、応答時間が60 Hz以上である必要があることを意味します。

この理由から、映画で見られるのと同じ効果が得られるため、8-16msの値を実際に目標にする必要があります。換言すれば、ユーザはそのような値に対して遅延の知覚を持たない。

ただし、キーボードには独自のポーリング時間があり、スクリプト自体に必ずしも接続されていない追加の遅延がその時間に干渉する可能性があることに注意する必要があります。これらの理由から、60 Hzを超える値を目指すと、マイナーディレイを追加する可能性のある他の影響に対して、より大きな安全マージンが与えられます。

一部のアプリケーションでは、100 msの遅延が目立たないように見えるかもしれませんが、実際には10 Hzに相当するため、目立っています。そのリフレッシュレートで映画を再生すると、映画の各フレームの間のギャップを実現する可能性が最も高い。この理由から、この値は十分に一般的な文脈では本当に考慮されるべきではありません。

人間の目の感度は条件や画像の部分によって異なりますので、必要に応じてリフレッシュレートを高くしてください。

This linkには、画面の特性とその変化が人間の目でどのように認識されるかについての詳細が記載されており、スクリプトの視覚的影響に基づいて、 。

+1

しかし、人間は60Hzと次のフレームの境界を知覚できません。特に、画面のわずかな部分のみが更新されている場合。さらに、更新が「次の」フレームに現れるように時間内に処理が行われたとしても、ユーザが現在見ているフレームの直後にそのフレームが実際に表示されることは保証できない。例えば、グラフィックスドライバによってバッファリングされていても、ディスプレイ自体の内部でバッファリングされているバッファであってもよい。次のフレームの完了を目指すことは、ほとんどの場合(例外:ゲーム)過度のことです。 – aroth

+1

それでも、スクリプトはただ1文字以上で動作する可能性があります。最も一般的なアプローチは、1つのフレームから次のフレームまで、画面全体が複数に変化するムービーとして見ることです方法。もちろん、多くの場合、これは劇的である必要はありませんが、これは少しの数学的アプローチでした。ゲームでさえ、遅れの影響と問題のゲームのためにそれらをどのように認識するかによって、ゲームの種類によって100msの遅延がかなり違って感じられるかもしれません。 –

9

は、私が100ミリ秒より速く何が「インスタント」として認識される傾向があることがわかります。それよりはるかに長く進み、遅れが確実に目立つようになります。もちろん、これは人から人へ、また遅延が発生している状況によって少し異なります。

あなたはこの例が参考に見つけること:「プレスキー」イベント2つの別々のフレームとして画面上に表示される文字を考慮http://jsfiddle.net/QGmBy/

+0

良い例ですが、私はまだ80msの遅延を見ることができます。誰にでもできますか?これは一般的な答えですが、なんらかの理由で100msは検出可能な遅延が最小になるには長すぎるようです。 – pepsi

+3

@pepsi使いやすさの分野では、0.1秒は「即時」、1秒は「かなり速い」 10代は「退屈してやるべきことを探している」と述べています。しかし、これは正確ではない球根の数であり、検出可能な最小値ではなく、手近な作業を妨害し始める遅延を表すことを意味する。はい、私は(ちょうど)80msの遅延を検出することができますが、私はそれを "annoyingly slow"と呼ぶつもりはありません:) –

+0

@pepsi - j-g-faustusによると。 100ミリ秒は一般的なルールであり、正確な答えではありません。そして、はい、私も80msの例が前の例より少し長く取っていると言うことができますが、それでもかなり速いです。確かに160 msの例よりもはるかに目立つことはありません。 – aroth

2

イベントが1回発生した場合は、100msが上限になります。イベントが大陸運動の一部であれば、10〜15ms程度の時間がかかるはずです。なぜなら、スライドするもの([1つ以上のピクセル]の時間)のような何かの100msの遅延は、そのような遅延が列はお互いに続く。

また、状況によっては何が遅れているかによっても異なります。キープレスイベント、何かが入り込んだり、他のマシンでリアルタイムイベントが起こったりすると、これらのすべてに異なる「許容値」レベルがあります:)

関連する問題