1

ネットワーク操作を分割して個別のスレッドに解析することで得られる利点はありますか? どちらも非 UI スレッドで実行する必要があることを認識しています。それは私の質問ではありません。ネットワーク操作をネットワーク スレッドで実行し、データを解析スレッドに渡して解析する必要がありますか?

ここに私が見るいくつかのトレードオフがあります:

プロ

  • 2 種類の操作が互いにブロックできない (?)
  • 2 種類の操作を別々のスレッド プールに配置して、別々に調整できます。

詐欺

  • コンテキストの切り替えに多少の遅延が発生する可能性があります
  • より多くのスレッド、より複雑
  • ストリームの解析が困難/不可能になる
4

1 に答える 1

1

あなたはほとんど自分で質問に答えました。実行している解析に時間がかからない限り、実際にはありません。ネットワーク操作はほとんどの場合、アプリケーションのボトルネックになるため、実行中の処理によって貴重な時間が削減され、代わりにスレッドがインターネットからダウンロードされる可能性があるかどうかのトレードオフを検討してください。

解析に数マイクロ秒から数ミリ秒かかる膨大な量のアプリケーションの場合、ユーザーにとって大きな違いはわかりません。解析にかなりの時間がかかる場合は、あなたが言ったように、解析用に別のスレッドを作成し、それらの間に生産者/消費者の関係を作成できます。これはアプリケーションにかなりの複雑さを追加しますが、これが問題であると判断するためになんらかのプロファイリングを実行しない限り、その価値はないと思います。

アプリケーションに対して時期尚早の最適化を行っていないこと、およびこれが必要かどうかを判断するためにプロファイルを作成した (または確実に知っている) ことを確認してください。:)

于 2013-08-29T15:13:16.680 に答える