1

load("http://restful.server.com/api/model/")クライアントでJavaScriptを使用する場合、のように、または単に必要なデータをロードするように、データのチャンク全体を一度にロードできることがよくありますload("http://restful.server.com/api/model/id=1234")。必要なアイテムが少ない場合は、後者が理にかなっています。ただし、必要なアイテムの数が大きく異なる可能性がある場合、多数のリクエストを行うまでの待ち時間は圧倒的になります。

どのアプローチが最速かを事前に知ることができない場合、ロード時間を最適化するためにリクエストを構造化する方法をどのように決定しますか?

例を挙げると、私が開発しているアプリは次の数字を示しています。

individual: Load choices based on individual questions, following the foreign
        relationship. The logical way, but costs round-trip-time.
  Min           Avg         Stddev      Max
times 77.13955832   96.59890914 23.99644340 184.17492986
sizes 0.232828M     0.238071M   0.002353M   0.241834M
speed 1.264167K     2.566590K   0.424770K   3.109053K

all: Load all choices in one go, ignoring the fact that most of them will be
     unused. Sloppy, but fast?
      Min           Avg         Stddev      Max
times 0.21781421    1.79287671  6.82427604  31.53920007
sizes 0.656552M     0.656552M   0.00000000  0.656552M
speed 0.020817M     2.746438M   0.6278713M  3.014275M

all速度は約1桁速いことに注意してください。これは明らかに、このテストのサーバーへのワンホップGigE接続の影響を受けます。ただし、実際の接続では最小RTTが大きく、スループットが低いため、同様のはずです。終了すると、利用可能なデータのサイズは1.3〜2桁大きくなると思います。つまり、一括読み込みは超高速接続でのみ機能します。何をすべきか?

4

0 に答える 0