1

多数のトラックを(を使用して)ロードする場合に、ロード時間に関して期待できるガイドライン、ベンチマークなどはありますSPAsyncLoading waitUntilLoaded:timeout:thenか?

私が尋ねる理由は、トラックのメタデータがクライアントのフロー全体で使用されるため、バッチで最大20のトラックをロードしようとしたためです(これはステップに分割されており、その間にはありません。初期遅延以外のロード時間。この場合、ユーザーはこれをより受け入れやすくなります)。

つまり、一度にロードを試みるのに妥当なトラックの数と、「必要な」時間はどれくらいですか?20トラックをロードするのは「たくさん」ですか?単一のトラック自体をロードすると、メタデータをプルするための多数の新しいリクエストがトリガーされ、一度に少数以上をロードしようとするのは非常に悪い考えになりますか?そして、単にタイムアウトする以外に、トラックのロードが失敗した理由を見つける方法はありますか?

かなり頻繁に(おそらく10分の1)、デフォルトの20秒のタイムアウト後にロードが失敗します(そして私は大きな違いなしに、より長いタイムアウトで試しました)。20トラックすべてがロードに失敗することもあれば、1つのトラックだけがロードに失敗することもあります。私のインターネット接続は、これらの試行の間(1、2分かかる場合があります)の間、(とにかく可能な限り)同じままであることをあえて言います。

ここには、正常なものとそうでないものなど、あいまいな入力がたくさんあることを認識しています。これは、インターネット接続やSpotifyサーバーのステータスなど、さまざまな要因に明らかに依存しますが、何らかの形で提供できる可能性があります。何を期待するか、SpotifyAPIに固有のものではないものがあるかどうかについてのヒント。

4

1 に答える 1

1

一般的に、ルールは次のとおりです。メタデータを今すぐユーザーに表示する必要があるトラックのみをロードし、次に表示されるトラックをプリロードする可能性があります。

さらに、CocoaLibSpotifyはキューを使用するため、ライブラリに負荷をかけるほど、オーバーヘッドが大きくなります。たとえばSPAsyncLoading、たくさんのものを別々にキューに入れると、それらはすべて別々にキューに入れられますが、それらのタイマーは即座に開始されます。十分な数のデータをエンキューすると、タイムアウトが発生するまでにロードを開始しない可能性があります。

SPAsyncLoadingただし、大量のキューイングが内部で行われるため、これは、1回の呼び出しに大量のデータを投入した場合にも発生します。

物事を速く保つために、それを軽く保ち、最初の文のガイドラインに従うようにしてください。さらに、物事を効率的に保つようにしてください。

  • SPAlbumBrowseそのアルバムのトラックメタデータを1回のヒットでロードし、バックエンドのロードとキューイング時間を短縮します。

  • についても同じですSPArtistBrowse

  • 同じだSPPlaylistと思います。

于 2012-11-28T10:30:36.457 に答える