2016-07-19 8 views
0

Deps:Was ist die optimale/weniger fehleranfällige Größe Cache für OkHttp Client (mit exoplayer verwendet)

  • Kotlin 1.0.3
  • Exoplayer
  • r1.5.9
  • Retrofit 2.1.0
  • okhttp 3.4.1

Im für meine vide Setup Cache versucht o Wiedergabe Projekt (Liste der Videos von 20 Sekunden pro Video) und Im fragen, ob noch irgendein Problem, wenn ich den Cache für OkHttp

val cacheSize: Long = 1000 * 1024 * 1024 // 1000 MB <-------- HERE 
val cookieManager = CookieManager() 

cookieManager.setCookiePolicy(java.net.CookiePolicy.ACCEPT_ORIGINAL_SERVER) 

return OkHttpClient.Builder() 
    .cache(Cache(File(cacheDir, "responses"), cacheSize)) 
    .cookieJar(JavaNetCookieJar(cookieManager)) 
  • setzte eine Ausnahme Mai habe wenn ich versuche 1000 MB für Cache zu verwenden ?
  • Wie kann ich die beste Cachegröße für meine App finden, ohne Probleme zu haben?

Antwort

1
  1. an der Cache-Klasse sucht, ist es nicht Vorbelegung der Dateien zu tun, so dass Ihre 1000MB ohne Ausnahme passieren, sondern dass es bedeutet nicht funktionieren wird, wenn das Gerät nicht funktioniert sogar diese Art von Leerraum um, was bedeutet, dass ...

  2. Wenn es nicht genügend Speicherplatz beim Speichern von Datei, wird es Dateien entsprechend der LRU löschen. a

  3. Niemand kann Ihre "beste" Cachegröße beantworten, da dies von Ihrem Anwendungsfall abhängt. Und du hast gesagt "ohne Probleme zu haben"; Für welche Themen hast du Angst? Sobald sich eine Videodatei im Cache befindet, wird sich das wahrscheinlich ändern? Wie oft wird es sich ändern? Wie groß ist im Durchschnitt die Videodatei? Für segmentierte Dateien (z. B. HLS), möchten Sie die Standard-LRU beibehalten?

  4. Beispiel: Nehmen wir an, Sie machen HLS, jeder Chunk ist 500k, also können Sie im Durchschnitt 2000 Chunks speichern.

a: DiskLruCache.java von okhttp3 (Beachten Sie es Überstunden ändern kann, nur danach suchen, wenn Verbindung unterbrochen wird)

+0

I-Cache nie zuvor so habe ich frage mich, was passieren kann, so kann ich eine Cache-Größe mit 2 GB und es wird einfach funktionieren? – Caipivara

+0

Warum fragen Sie, ob ich einen Standard-LRU-Cache verwenden möchte? Gibt es noch einen? – Caipivara

Verwandte Themen