web-dev-qa-db-ja.com

デスクトップアプリケーションのパフォーマンスを向上させるにはどうすればよいですか?

私たちは、さまざまな財務計画のビジネスステップのために、非常に「大きく」、残念ながら遅いWindowsアプリケーションを構築しました。

私は現在、待機時間の割合の後に割合を徐々に減らすことによって、アプリケーションのパフォーマンスを改善しようとしています。ただし、アプリケーションにはまだ多くの待機時間が残っています。

質問知覚されるパフォーマンスを改善する最良の方法は何ですか? (一般的に遅いアプリケーション)

例:

ユーザーがアプリケーションを閉じると、現在一部のデータが保存され、データの保存後にアプリケーションウィンドウが閉じます。 1秒ほど後にエラーウィンドウが表示される可能性があるアプリケーションを表示する方がよいでしょうか。

ユーザーが何らかの操作を開始した後すぐに待機カーソルを表示することは利点ですか、それとも他のことを実行する必要がありますか(ブロックUI、待機アニメーションを表示しますか?)参照を提供して、経営陣に同意してもらえますか?

4
Barfieldmv

「たくさんの小さなものと大きなものが遅い」場合、アニメーションの量がどれほど彼らの体験を正直に改善することはないと思います。

あなたの質問の文言から、私は開発者がこれらのUIの改善に取り組むつもりの同じ人々であると想定しています。その場合は、少なくとも必要な再コードのリストが明確になるまで、実際のコードの改善に時間を費やす方がよいでしょう。オーバーホール作業を明確に特定し、優先順位を付け、スケジュールすることができない場合、これらすべてのUIの改善は時間の無駄です。

私もビジネスアプリケーションを開発しているので、コードの手直しがいかに簡単であるかはわかっていますが、場合によってはそれをすり抜ける必要があります。現在、先延ばしになっていると、それが実行されないことがよくあります。

ウィンドウを非表示にして処理をバックグラウンドで実行することも非常に危険です。彼らはおそらく、トランザクション/処理が完了したと想定し、アプリケーションが閉じるのを見たらワークステーションを離れます。

それが起こり、彼らが重大なエラーメッセージを見逃した場合、支払うべき地獄があるかもしれません...

4
Permas

知覚されるパフォーマンスを大幅に改善できる方法が1つあります。データが保存または取得されているポイントに到達し、ユーザーを待機させているときはいつでも、その操作中に次の画面を表示します。完了するまで、画面を読み取り専用にする「Loading ...」オーバーレイが必要です。

たとえば、「次の」画面はアカウントの詳細である可能性があります。すべてのフィールドを空白にして、その画面をすぐに表示できます。次に、データを非同期でロードするときに、「Loading ...」オーバーレイを表示します。

これを行う理由は簡単です。ユーザーが次に何を操作するかを確認できる場合は、使用できるようになるとすぐに準備が整います。実行時間の長いタスクの結果、新しい情報が表示される場合はいつでも、この手法を使用してユーザーのワークフローを最適化できます。

3
Steve Wortham

起動時に情報をキャッシュできる場合は、アプリケーションの起動が遅くなりますが、実行後の速度は速くなります。

アニメーションは何かを「明らかに」速くしません。進行状況バーは、単純なアニメーションよりも便利です。大容量ファイルのコピーなど、Windowsで長い時間がかかるものは、通常、進行状況バーとアニメーションを組み合わせています。

応答時間に関するJacob Neilsenのブログ から:

  • 0.1秒は、瞬時の応答の感覚を与えます—つまり、結果は、コンピュータではなく、ユーザーによって引き起こされたように感じます。このレベルの応答性は、直接操作の感覚をサポートするために不可欠です(直接操作は、ユーザーエンゲージメントとコントロールを向上させるための主要なGUIテクニックの1つです。詳細については、「インターフェース設計の原則」セミナーを参照してください)。
  • 1秒は、ユーザーの思考の流れをシームレスに保ちます。ユーザーは遅延を感じることができるため、コンピューターが結果を生成していることはわかりますが、全体的なエクスペリエンスを制御でき、コンピューターを待つのではなく自由に動いていると感じます。この程度の応答性は、良好なナビゲーションに必要です。
  • 10秒は、ユーザーの注意を引き付けます。 1〜10秒で、ユーザーは間違いなくコンピューターのなすがままに感じ、それがより高速であることを望みますが、彼らはそれを処理できます。 10秒後、彼らは他のことについて考え始め、コンピューターが最終的に応答するようになると、頭を元に戻すことが難しくなります。

したがって、10秒未満の応答時間を取得する必要があることを経営陣に伝えることをお勧めします。

2
icc97

実行可能なタスクは、実行時間の長いタスクをより小さな「チャンク」に分割することです-もちろんこれが可能であれば。その後、各「チャンク」が処理された後でUIを更新できます。

画像処理の例をとると、生成された画像の各行を更新して(たとえば)上から下に画像を塗りつぶしたり、プログレッシブぼかしアルゴリズムの各ステップを表示して、どんどん鋭くなっていきます。

したがって、財務データについては、おそらく処理されている各日/週の数値を表示できます。

操作の全体的な時間は変化しませんが、ユーザーは作業を続行する前にデータのallが表示されるのを待たないため、ユーザーはそれをより速く感じることができます。彼らはデータを「これまでのところ」レビューし、分析することができます。

また、プロセスが間もなく終了することを確信します。

2
ChrisF

まず、whatが遅いことと、ユーザーにとって何が遅いように見えるかを見つける必要があると思います。これはユーザーインターフェースになることもありますが、いくつかのタスクにすぎないこともあります。ソリューションは、アプリケーションの遅い部分に依存します。

「待機アニメーションの表示」について:これは避け、ある程度の進歩を見せようとしています。

2
Mike L.

この質問のおかげで、何年も前に読んだユーザビリティテストレポートを思い出しました。JakobNielsenによるものかもしれません。この調査は、いくつかの競合サイト間の比較でした。一部のユーザーは他のユーザーよりも使いやすさが向上しました。
セッションの最後にユーザーに質問があり、その中でユーザーはサイトの応答時間を評価する必要がありました。
興味深い部分は、クロノメーターが別の話をしていたという事実にもかかわらず、ユーザーがより良いユーザビリティでサイトを一貫して高速に評価したことです。

道徳は、ユーザーが常に前進し、待機を許していると感じているためか、ユーザービリティの良さがユーザーの速度知覚を向上させることです。

一方、時間が回復しないというパフォーマンスの問題はありません。次のコンピューターは、現在入手可能なコンピューターよりも高速です。

したがって、リソースの一部を適用して使いやすさを向上させ、速度の不足の一部を ムーアの法則 で解決することができます。

1
Juan Lanus